QT 隨機數生成


下面總結了QT中隨機生成的方法(僅供學習參考),分為舊方法和新方法,一般來說,舊的方法已經被拋棄,在開發新的應用中推薦使用新方法。

  C++ Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
#include <QCoreApplication>
#include <QDebug>
#include <QTime>
#include <QRandomGenerator>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
// 舊方法
    // 生成隨機數主要用到了函數qsrand和qrand,這兩個函數在#include <QtGlobal>中;
    // qsrand用來設置一個種子,該種子為qrand生成隨機數的起始值。
    // 比如說qsrand(10),設置10為種子,那么qrand生成的隨機數就在[10,32767]之間。
    // 而如果在qrand()前沒有調用過qsrand(),那么qrand()就會自動調用qsrand(1),即系統默認將1作為隨機數的起始值。
    // 使用相同的種子生成的隨機數一樣。
    // 在使用qrand()函數產生隨機數之前,一般要使用qsrand()函數為其設置初值,如果不設置初值,那么每次運行程序,qrand()都會產生相同的一組隨機數。
    qsrand(QTime(000).secsTo(QTime::currentTime()));
    
int nTestNum = qrand() % 100;
    qDebug() << nTestNum;
    
// 新方法(推薦使用)
    qDebug() << QRandomGenerator::global()->bounded(256);
    qDebug() << QRandomGenerator::global()->bounded(
256.0);
    
return
 a.exec();
}

說明:舊方法使用的是qsrand()和qrand()的組合實現方法,精度一般;新方法使用的是QRandomGenerator類,可以提供高精度的隨機數實現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM