天天看點

srand rand 函數

遇到随機産生函數,之前不解,在此記錄下:

srand()函數是給rand()随機數種子,在以下面的程式中以time來定種子。

srand rand 函數

其實srand()就是初始化rand()函數,以下是網上查找的資料對rand()初始化的了解

1.C的函數庫之是以沒有把使用系統時鐘初始化随機種子這步重要的操作直接放進rand函數的實作中,我覺得至少有三個原因: 

(1)可以高效産生連續的随機數,不用每次都初始化;

(2)給程式員以更高的靈活性,因為可能在要求較高的場合,應該使用更好的的資料做種子,而不是系統時鐘; 

(3)對于隻是想産生大量僞随機數來盡興某種驗證或者統計,未必需要初始化,大不了程式每次運作都産生同樣的一系列随機數而已——有些情況下,這是無所謂的。事實上有一個更重要的原因:作為僞随機序列産生器的rand()函數,必須具備的一個重要特性就是-》産生的序列必須是可重制的。