QT 的隨機函式的應用

2021-08-25 16:18:43 字數 1014 閱讀 7133

首先是初始化:

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())來作為初始化種子,在同乙個程式中這個種子是固定的。

隨機函式的應用

srand 初始隨機數發生器 rand 隨機數發生器 注意在c 中,當srand中的引數相同 即隨機數種子相同 時,則產生的偽隨機數列也相同 關係 srand函式用於為rand函式產生隨機數種子 使用 通常用time null 作為srand函式的傳入引數 當使用time null 作為srand函...

QT中的隨機函式的用法

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

SQL Server中隨機函式的應用

select from student order by newid select top n from student order by newid 這裡的n代表隨機顯示的記錄數 注 newid 返回的是uniqueidentifier型別的唯一值。newid 每次產生的值都不一樣,那麼根據這樣的...