c語言rand函式的用法
在C語言中,rand()函式可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,下面我們來看看c語言rand函式的用法。 rand(產生隨機數) 相關函式 srand 表頭檔案 #include<stdlib.h> 定義函式 int rand(void) 函式說明 rand()會返回一隨機數值,範圍在0至RAND_MAX 間。在呼叫此函式產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在呼叫時會自動設隨機數種子為1。關於隨機數種子請參考srand()。 返回值 返回0至RAND_MAX之間的隨機數值,RAND_MAX定義在stdlib.h,其值為2147483647。 範例 /* 產生介於1 到10 間的隨機數值,此範例未設隨機數種子,完整的隨機數產生請參考 srand()*/ #include<stdlib.h> main() { int i,j; for(i=0;i<10;i++) { j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); printf("%d ",j); } } 執行 9 4 8 8 10 2 4 8 3 6 9 4 8 8 10 2 4 8 3 6 srand(設定隨機數種子) 相關函式 rand 表頭檔案 #include<stdlib.h> 定義函式 void srand (unsigned int seed); 函式說明 srand()用來設定rand()產生隨機數時的隨機數種子。引數seed必須是個整數,通常可以利用geypid()或time(0)的返回值來當做seed。如果每次seed都設相同值,rand()所產生的隨機數值每次就會一樣。 返回值 範例 /* 產生介於1 到10 間的隨機數值,此範例與執行結果可與rand()參照*/ #include<time.h> #include<stdlib.h> main() { int i,j; srand((int)time(0)); for(i=0;i<10;i++) { j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); printf(" %d ",j); } } 執行 5 8 8 8 10 2 10 8 9 9 2 9 7 4 10 3 2 10 8 7