c#生成指定數目的互不相同的隨機數
dotnet.frameword中提供了乙個專門產生隨機數的類system.random,計算機並不能產生完全隨機的數字,它生成的數字被稱為偽隨機數,它是以相同的概率從一組有限的數字中選取的,所選的數字並不具有完全的隨機性,但就實用而言,其隨機程度已經足夠了。
在使用隨機數時,要先初始化乙個隨機數發生器.有兩種方法;
第一種方法不指定隨機種子,系統自動選取當前時前作隨機種子:
random ra=new random();
第二種方法是指定乙個int型的引數作為隨機種子:
random ra=new random(int iseed);
初始化完成後,用random.next()方法產生隨機數。
ra.next(); 它返回乙個大於或等於零而小於2,147,483,647的數.
下面我們介紹它的過載函式和其它一些方法。
public virtual int next(int);
用法:ra.next(20)
返回乙個小於所指定最大值(此處為20)的正隨機數。
public virtual int next(int minvalue, int maxvalue);
用法:ra.next(1,20)
返回乙個指定範圍內(此處為1-20之間)的隨機數.
類system.random還有幾個方法分別是:
公共方法:
nextbytes用隨機數填充指定位元組陣列的元素。
nextdouble返回乙個介於 0.0 和 1.0 之間的隨機數。
受保護的方法:
sample返回乙個介於 0.0 和 1.0 之間的隨機數,只允許子類物件訪問。
要在一段數字區間內隨機生成若干個互不相同的隨機數,比如在從1到20間隨機生成6個互不相同的整數。
可以參考下面兩個函式:
differsamenessrandomnum與getrandomnum:
public int differsamenessrandomnum(int num,int minvalue,int maxvalue)
//在區間[minvalue,maxvalue]取出num個互不相同的隨機數,返回陣列。
return arrnum;
} 函式getnum是一遞迴,用它來檢測生成的隨機數是否有重複,如果取出來的數字和已取得的數字有重複就重新隨機獲取。
public int getrandomnum(int arrnum,int tmp,int minvalue,int maxvalue,random ra)
n++;
} return tmp;
}
c 隨機數產生
我們在做能自動生成試卷的考試系統時,常常需要隨機生成一組不重複的題目,在.net framework中提供了乙個專門用來產生隨機數的類system.random。對於隨機數,大家都知道,計算機不可能產生完全隨機的數字,所謂的隨機數發生器都是通過一定的演算法對事先選定的隨機種子做複雜的運算,用產生的結...
C 隨機數產生
標準庫 被包含於中 提供兩個幫助生成偽隨機數的函式 函式一 int rand void 從srand seed 中指定的seed開始,返回乙個 seed,rand max 0x7fff 間的隨機整數。函式二 void srand unsigned seed 引數seed是rand 的種子,用來初始化...
C 產生隨機數
c 怎樣產生隨機數 這裡要用到的是 rand 函式 srand 函式 c 裡沒有自帶的random int number 函式。1 如果你只要產生隨機數而不需要設定範圍的話,你只要用rand 就可以了 rand 會返回一隨機數值,範圍在0至rand max 間。rand max值至少為32767。例...