1. 概念 ( 隨機函式 ran
d()rand()
rand()
)庫函式中系統提供了兩個函式用於產生隨機數:srand()和rand()。
函式原型
含義int rand(void);
返回乙個[0,rand_max]間的隨機整數。
void srand(unsigned seed);
引數seed是srand()的種子,用來初始化srand()的起始值。
#include
#include
intmain()
return0;
}
2. 注意點(也是該函式使用時的難點)
問題引出:
如果讀者多次執行上述程式,會發現:上述**雖然每個數字都是隨機數,但是每次執行的結果都一樣。即:概念解釋:
1)系統在呼叫rand()之前都會自動呼叫srand(),
2) 如果在srand()裡給引數seed指定了乙個值,那麼 rand()就會將seed的值作為產生偽隨機數的初始值;
3)而如果使用者在rand()前沒有呼叫過srand(),那麼系統預設將1作為偽隨機數的初始值,
4) 如果初始值是此時的1或是其他定值,那麼每次rand()產生的隨機數序列都是一樣的,這也就是所謂的「偽隨機數」。
解決辦法:
配合srand函式使用:
**解釋#include
#include
#include
intmain()
return0;
}
1)srand()裡給引數seed指定了乙個值(我們通常使用 time(null) 或者寫成 time(0) 作為 seed ,因為時間值每秒都不同,)
2)值得注意的是,如果srand()括號中沒有引數的話,程式是會報錯的,因為在函式原型中,srand()函式是要求加上內容的。
語句所需標頭檔案
作用srand(time(null));
#include
保證隨機序列種子不同
rand()
#include
能夠生成隨機數
c 隨機函式rand
一 c 中不能使用random 函式 random函式不是ansi c標準,不能在gcc,vc等編譯器下編譯通過。但在c語言中int random num 可以這樣使用,它返回的是0至num 1的乙個隨機數。可改用c 下的rand函式來實現。1 c 標準函式庫提供一隨機數生成器rand,返回0 ra...
C 隨機函式rand()
每次生成的隨機數都相同 include include rand intmain 每次生成的隨機數都不同 include include include time intmain include include include intmy rand2 a 0 放陣列的組長 include inclu...
C 隨機函式 rand
使用 rand 函式可以獲取 隨機數大小是在0到rand max,值為2147483647,它是在stdlib中定義的,如果我們希望在某個範圍內,可以使用 結合 來實現 但是不難發現,這裡獲得的隨機數是唯一確定的,而不是變化的。所以,如果我們希望獲得變化的隨機數,可以使用下面的方法。因為rand的內...