為什么我總是得到與rand()相同的隨機(jī)數(shù)序列?這是我第一次用C嘗試隨機(jī)數(shù)(我想念C#)。這是我的代碼:int i, j = 0;for(i = 0; i <= 10; i++) {
j = rand();
printf("j = %d\n", j);}使用此代碼,每次運(yùn)行代碼時(shí),我都會(huì)得到相同的序列。但是,如果我添加的話,它會(huì)產(chǎn)生不同的隨機(jī)序列。srand(/*somevalue/*)在for循環(huán)。有人能解釋原因嗎?
4 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
引用自曼蘭德?:
srand()函數(shù)將其參數(shù)設(shè)置為rand()返回的偽隨機(jī)整數(shù)序列的種子。通過調(diào)用具有相同種子值的srand(),這些序列是可重復(fù)的。
如果不提供種子值,rand()函數(shù)將自動(dòng)以1的值播種。
所以,沒有種子價(jià)值,rand()
假設(shè)種子為1(在您的情況下每次),并且具有相同的種子值,rand()
會(huì)產(chǎn)生同樣的數(shù)字序列。
- 4 回答
- 0 關(guān)注
- 609 瀏覽
添加回答
舉報(bào)
0/150
提交
取消