產生 a,b 以及 c,d 間的隨機數

2021-08-04 04:55:59 字數 542 閱讀 4268

有時,需要的隨機數並不是在乙個連續的範圍內的,而是類似於[a,b]和[c,d]間取值,或者是產生一定數量的不重複的整數。

本文的方法便是建立一定的陣列,用rand()產生的數值作為陣列的下標,再將所得資料與陣列最後乙個數值進行交換,然後將rand()的範圍上限減1,

比如產生[1,50]間不重複的5個隨機數,先產生1個[0,49]隨機數n,根據隨機數n取出a[n]的數並將之與a[49]相交換,再產生乙個[0,48]的隨機數,依次類推

# include 

# include

# include

# define swap(x,y) (x)=(x)+(y);(y)=(x)-(y);(x)=(x)-(y)

int main()

int num_data = 0;

int data_num = 0;

int rand_num = 0;

int tmp = 0;

for(int i=0;i

產生隨機數

先說明一下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...