隨機數產生

2021-08-20 23:43:24 字數 1162 閱讀 3405

1.rand()函式

1)標頭檔案:stdlib.h

2)作用:隨機輸出0~rand_max中的乙個整數(rand_max是stdlib.h中的乙個巨集)。

若想要輸出乙個自定義範圍 [a,b] 間的隨機數,則用 rand()%(b-a+1)+a ,如[20,30],rand()%11+20; rand()取了乙個隨機數,對11取餘則得0~10,再加20,就取到了20~30的隨機數。

3)產生偽隨機數:rand()函式產生隨機數前會依據系統提供的生成為隨機數列的種子生成隨機序列,如果系統提供給它的種子沒有變化,每次生成的隨機數就相同。

#include #include int main(void)

output恒為:

16807

21

【克服偽隨機數產生相同值的方法】

2.srand()函式

1)標頭檔案:stdlib.h

2)作用:隨機數發生器的初始化函式。輸入乙個新的seed,使rand()能產生不同的隨機數。

3)使用方法:srand(unsigned seed)

(1) 手動輸入seed

#include #include int main(void)

return 0;

}

output:

input seed.

29   97   52   86   27

但這樣相同seed對應的隨機值依舊相同。

(2)利用系統時間來輸入seed

3.time()函式

1)標頭檔案:time.h

2)作用:返回自unix紀元起到當前時間的秒數

3)c標準庫函式:time_t time(time_t *t);

當指標t為null時,返回時間;當指標t不為空指標時,返回時間,並把返回值賦予*t 。

#include #include #include int main(void)

return 0;

}

output:

84   74   64   14   44

產生隨機數

先說明一下rand,這個函式用來產生偽隨機數。比如,產生1000的兩個隨機數,產生的兩個一般上是不同的,但如果要產生80個100以內的隨機數,僅用rand函式就不夠。因為產生80個100以內的隨機數,至少有兩個數相等的概率太大了 srand函式,並不能使產生的隨機數完全不同。你可以執行以下這串 in...

隨機數產生

c c 中取隨機數 在計算機中並沒有乙個真正的隨機數發生器,但是可以做到使產生的數字重複率很低,這樣看起來好象是真正的隨機數,實現這一功能的程式叫偽隨機數發生器。有關如何產生隨機數的理論有許多,如果要詳細地討論,需要厚厚的一本書的篇幅。不管用什麼方法實現隨機數發生器,都必須給它提供乙個名為 種子 的...

產生隨機數

一 normrnd r normrnd mu,sigma r normrnd mu,sigma,m,n,r normrnd mu,sigma,m,n,mu sigma可以是向量或矩陣 二者同為矩陣時size要相同 但必須和r的size相同 行 列 r的size可以不指定,也可以用m,n指定 n1 n...