2015-05-06 75 views
-2

我正在生成隨機數,並且有人告訴我使用srand。我搜索了srand並發現它在rand()上使用。但我不明白爲什麼不能只使用蘭特(),因爲我在下面的代碼獲得隨機數:爲什麼在rand()生成C中的所有隨機數時使用srand

#include<stdio.h> 
#include<stdlib.h> 

int main(){ 

    int i=0; 

    for(i=0;i<5;i++){ 
     printf("random number is %d\n",rand()); 
    } 
} 

而且我得到了一組5個隨機數字。所以rand()確實給出了隨機數。那麼爲什麼我們需要在這之上呢?

+0

[documentation](http://linux.die.net/man/3/rand)應該解釋當srand * * *先被顯式調用時會發生什麼。 – user2864740

+0

噸重複在這裏已經解釋說 –

+0

另請參見['srand()' - 爲什麼只調用一次?](http://stackoverflow.com/questions/7343833) –

回答

2

如果你只是使用rand()並多次運行你的代碼,你會注意到你每次都會得到相同的隨機數序列。

srand用於種子隨機數發生器。這可以讓你生成不同的序列。我建議你閱讀the manual page for srand.

+0

您使用'srand'生成'半隨機'種子'的數字產生一個**可重現的**隨機設置以允許調試等。 –

相關問題