QT qrand 隨機函式

2021-09-24 02:23:58 字數 815 閱讀 3169

在qt中,生成隨機數的函式為 qrand()。該函式是標準c++函式 rand 的執行緒安全版本。

如果我們僅僅只是呼叫該函式來生成隨機數,那麼每次得到的隨機數都將是相同的,這是因為qt生成的隨機數嚴格來說是乙個「偽隨機」,它的產生是根據隨機數種子計算得到的。如果種子相同,那麼所得到的隨機數也是相同的。因此,為了使我們的隨機數看起來更為「隨機」一些,我們在每次獲取隨機數之前都需要初始化乙個不同的隨機數種子,這就需要用到qsrand()函式,該函式只有乙個整型引數,即要設定的隨機數種子。

函式原型

void qsrand(uint seed);

int qrand();

qt生成隨機數和c語言差距不大,c語言用srand()和rand(),qt是用qsrand()和qrand();

qt生成隨機數的格式是:

qsrand(qtime(0,0,0).secsto(qtime::currenttime()));

qrand();

注意:qsrand用來設定乙個種子,該種子為qrand生成隨機數的起始值。如果不用qsrand設定種子會導致每次執行程式得到的隨機數

一樣。

例子:

//使用了乙個 label 和 pushbutton

#include //使用了qtime函式

#include //qsrand和qrand這兩個函式在這裡面

void widget::on_pushbutton_clicked()

QT qrand 隨機函式不隨機?

在做乙個qt的課程設計時,需要乙個產生隨機數 四位不同數字的隨機數 的方法,查了一下資料發現很簡單呼叫一下qrand 方法即可。確實也能產生隨機數但是發現乙個bug就是每次重啟程式發現每次產生的隨機數都是相同的。如下 獲取隨機數 int mainwindow generaterandomnumber...

隨機函式 randbetween隨機函式不簡單

在excel中,我們知道randbetween函式可以產生隨機整數,然而,應用巧妙的話,還可以獲取隨機日期 隨機姓名等。下面來看看吧 randbetween函式 1.作用 返回乙個介於指定的數字之間的隨機整數。2.語法 randbetween bottom,top bottom引數 將返回的最小整數...

隨機檔案與隨機函式

1.dev random 與 dev urandom 特殊檔案 有些系統會提供兩種隨機偽裝置 dev random 與 dev urandom。這兩個裝置的差別,在 dev random 會一直封鎖,直到系統所產生的隨機數已充分夠用,所以它可以確保高品質的隨機數。相對地,dev urandom 不會...