為什么我總是得到與rand()相同的隨機數序列?這是我第一次用C嘗試隨機數(我想念C#)。這是我的代碼:int i, j = 0;for(i = 0; i <= 10; i++) {
j = rand();
printf("j = %d\n", j);}使用此代碼,每次運行代碼時,我都會得到相同的序列。但是,如果我添加的話,它會產生不同的隨機序列。srand(/*somevalue/*)在for循環。有人能解釋原因嗎?
4 回答
jeck貓
TA貢獻1909條經驗 獲得超7個贊
引用自曼蘭德?:
srand()函數將其參數設置為rand()返回的偽隨機整數序列的種子。通過調用具有相同種子值的srand(),這些序列是可重復的。
如果不提供種子值,rand()函數將自動以1的值播種。
所以,沒有種子價值,rand()假設種子為1(在您的情況下每次),并且具有相同的種子值,rand()會產生同樣的數字序列。
- 4 回答
- 0 關注
- 634 瀏覽
添加回答
舉報
0/150
提交
取消
