C語言如何產生隨機數

2021-06-17 18:11:00 字數 1477 閱讀 5537

1.基本函式

在c語言中取隨機數所需要的函式是:

int rand(void);

void srand(unsigned int n);

rand()函式和srand()函式被宣告在標頭檔案stdlib.h中,所以要使用這兩個函式必須包含該標頭檔案:  #include

2.使用方法

rand()函式返回0到rand_max之間的偽隨機數(pseudorandom)。rand_max常量被定義在stdlib.h標頭檔案中。其值等於32767,或者更大。

srand()函式使用自變數

n作為種子,用來初始化隨機數產生器。只要把相同的種子傳入srand(),然後呼叫rand()時,就會產生相同的隨機數序列。因此,我們可以把時間作為srand()函式的種子,就可以避免重複的發生。如果,呼叫rand()之前沒有先呼叫srand(),就和事先呼叫srand(1)所產生的結果一樣。

for (int i=0; i<10; i++)

每次執行都將輸出:1 7 4 0 9 4 8 8 2 4

srand(1);

for (int i=0; i<10; i++)

每次執行都將輸出:1 7 4 0 9 4 8 8 2 4

例2的輸出結果與例1是完全一樣的。

srand(8);

for (int i=0; i<10; i++)

每次執行都將輸出:4 0 1 3 5 3 7 7 1 5

該程式取得的隨機值也是在[0,10)之間,與srand(1)所取得的值不同,但是每次執行程式的結果都相同。

srand((unsigned)time(null));

for (int i=0; i<10; i++)

因為每次啟動程式的時間都不同。另外需要注意的是,使用time()函式前必須包含標頭檔案time.h。

3. 注意事項

求一定範圍內的隨機數。  如要取[0,10)之間的隨機整數,需將rand()的返回值與10求模。

randnumber = rand() % 10;
那麼,如果取的值不是從0開始呢?你只需要記住乙個通用的公式。要取[a,b)之間的隨機整數(包括a,但不包括b),

使用:(rand()% (b - a)) + a

偽隨機浮點數。要取得0~1之間的浮點數,可以用:

rand()/ (double)(rand_max)

如果想取更大範圍的隨機浮點數,比如0~100,可以採用如下方法:

rand()/((double)(rand_max)/100)

其他情況,以此類推,這裡不作詳細說明。當然,本文取偽隨機浮點數的方法只是用來說明函式的使用辦法,你可以採用更好的方法來實現。

C語言如何產生隨機數

1.基本函式 在c語言中取隨機數所需要的函式是 int rand void void srand unsigned int n rand 函式和srand 函式被宣告在標頭檔案stdlib.h中,所以要使用這兩個函式必須包含該標頭檔案 include 2.使用方法 rand 函式返回0到rand m...

C語言產生隨機數

c語言產生隨機數需要呼叫stdlib.h標頭檔案中的兩個函式 int rand void 產生乙個0到rand max之間的隨機整數。rand max定義在stdlib.h,其值為2147483647 void srand int seed 用於初始化種子,便於每次產生不同的隨機數。include ...

C語言產生隨機數

c語言中可以利用rand 函式產生偽隨機數,也可以使用srand 配合rand 一起使用獲得真隨機數。int rand void void srand unsigned int n include include include int main 使用rand 函式產生0 20偽隨機數 printf...