程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C 中隨機數

C 中隨機數

編輯:關於C語言

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;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved