C語言,如何產生隨機數:
在C中取隨機數所需要對函數是:
int rand ( void );
void srand ( unsigned int n);
備注:必須包含該頭文件#include <stdlib.h>
rand()函數返回0到RAND_MAX之間的偽隨機數(pseudorandom)。RAND_MAX常量被定義在stdlib.h頭文件中。其值等於32767,或者更大
srand()函數使用自變量n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然後調用rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函數的種子,就可以避免重復的發生。如果,調用rand()之前沒有先調用srand(),就和事先調用srand(1)所產生的結果一樣。
(1) (2)
int i; int i;
for(i=0;i<10;i++) srand(1);
printf(“%d\t”,rand()%10); for(i=0;i<10;i++)
運行結果:1 7 4 0 9 4 8 8 2 4 printf(“%d\t”,rand()%10);
運行結果:同(1)
(3) (2)
int i; int i;
srand (5) srand((unsigned)time(NULL));
for(i=0;i<10;i++) for(i=0;i<10;i++)
printf(“%d\t”,rand()%10); printf(“%d\t”,rand()%10);
運行結果:4 3 5 9 0 0 7 9 2 0 運行結果:
該程序每次運行結果都不一樣,因為每次啟動程序的時間都不同。另外需要注意的是,使用time()函數前必須包含頭文件time.h。
注意事項:
求一定范圍內對隨機數;
如果去[0,10)之間對隨機整數,需將rand()的返回值與10求模。
若是求[a,b),則使用:
(rand()%(b-a))+a;