QT中的隨機函式的用法

2021-06-09 06:25:50 字數 1025 閱讀 1873

首先是初始化:

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

接著就可以隨機了:

qrand()理論上返回0 到 

rand_max間的值。

如果要返回0~n間的值,則為:qrand()%n;

如果要返回a~b間的值,則為:a + qrand() % (b - a)

這裡介紹2種方法

標頭檔案都必須的,不多說了:   #include

其中乙個:

函式中:

qtime t;

t= qtime::currenttime();

qsrand(t.msec()+t.second()*1000);

int n = qrand();

還有乙個簡單方法:

qsrand(time(null));

int n = qrand();

這2句不一定要連著,前邊初始化種子可以在程式開始的時候就初始化。

如果2句連在一起,並且又同時出現在for迴圈中,就容易產生相同的隨機數。

關於srand的說明:(百科)

srand函式是隨機數發生器的初始化函式。

原型:void srand(unsigned seed);   

用法:它需要提供乙個種子,如: srand(1); 直接使用1來初始化種子。不過常常使用系統時間來初始化,即使用 time函式來獲得系統時間,它的返回值為從 00:00:00 gmt, january 1, 1970 到現在所持續的秒數,然後將time_t型資料轉化為(unsigned)型再傳給srand函式,即: srand((unsigned) time(&t)); 還有乙個經常用法,不需要定義time_t型t變數,即: srand((unsigned) time(null)); 直接傳入乙個空指標,因為你的程式中往往並不需要經過引數獲得的t資料。srand((int)getpid()); 使用程式的id(getpid())來作為初始化種子,在同乙個程式中這個種子是固定的。

QT 的隨機函式的應用

首先是初始化 qsrand qtime 0,0,0 secsto qtime currenttime 接著就可以隨機了 qrand 理論上返回0 到rand max間的值。如果要返回0 n間的值,則為 qrand n 如果要返回a b間的值,則為 a qrand b a 這裡介紹2種方法 標頭檔案都...

Qt中QObject sender 的用法

qt中qobject sender 的用法 當某乙個object emit乙個signal的時候,它就是乙個sender,系統會記錄下當前是誰emit出這個signal的,所以你在對應的slot裡就可以通過 sender 得到當前是誰invoke了你的slot,對應的是qobject d sende...

Qt 中 foreach 的用法

原文連線 在標準c 中,並沒有foreach關鍵字。但是在qt中,可以使用這乙個關鍵字,其主要原因是qt自己增加了這乙個關鍵字,就像slots和signals emit等一樣。增加的foreach關鍵字在編譯時會進行預處理。其用法為 foreach varitem items foreach var...