首先是初始化:
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 每次產生的值都不一樣,那麼根據這樣的...