国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#生成互不相同隨機數(shù)的實現(xiàn)方法

2020-01-24 02:27:24
字體:
來源:轉載
供稿:網(wǎng)友

本文實例講述了C#生成互不相同隨機數(shù)的實現(xiàn)方法,在進行C#應用程序設計時非常具有實用價值。本文詳細講述了其功能的實現(xiàn)過程。分享給大家供大家參考之用。具體方法如下:

一般來說,用C#生成足夠隨機的互不相同的隨機數(shù) Dotnet.Frameword中提供了一個專門產(chǎn)生隨機數(shù)的類System.Random,計算機并不能產(chǎn)生完全隨機的數(shù)字,它生成的數(shù)字被稱為偽隨機數(shù),它是以相同的概率從一組有限的數(shù)字中選取的,所選的數(shù)字并不具有完全的隨機性,但就實用而言,其隨機程度已經(jīng)足夠了。

在使用隨機數(shù)時,要先初始化一個隨機數(shù)發(fā)生器.有兩種方法;

第一種方法不指定隨機種子,系統(tǒng)自動選取當前時前作隨機種子:

Random ra=new Random();

第二種方法是指定一個int型的參數(shù)作為隨機種子:

Random ra=new Random(int iseed);

初始化完成后,用Random.Next()方法產(chǎn)生隨機數(shù)。
ra.Next(); 它返回一個大于或等于零而小于2,147,483,647的數(shù).
 
下面我們介紹它的重載函數(shù)和其它一些方法。

public virtual int Next(int);

用法:ra.next(20) 返回一個小于所指定最大值(此處為20)的正隨機數(shù)。

public virtual int Next(int minValue, int maxValue);

用法:ra.next(1,20) 返回一個指定范圍內(nèi)(此處為1-20之間)的隨機數(shù).

類System.Random還有幾個方法分別是:

公共方法: NextBytes用隨機數(shù)填充指定字節(jié)數(shù)組的元素。
NextDouble返回一個介于 0.0 和 1.0 之間的隨機數(shù)。

受保護的方法: Sample返回一個介于 0.0 和 1.0 之間的隨機數(shù),只允許子類對象訪問。
要在一段數(shù)字區(qū)間內(nèi)隨機生成若干個互不相同的隨機數(shù),比如在從1到20間隨機生成6個互不相同的整數(shù)。

可以參考下面兩個函數(shù): differSamenessRandomNum與getRandomNum:

public int[] differSamenessRandomNum(int num,int minValue,int maxValue) //在區(qū)間[minValue,maxValue]取出num個互不相同的隨機數(shù),返回數(shù)組。{Random ra=new Random(unchecked((int)DateTime.Now.Ticks));//保證產(chǎn)生的數(shù)字的隨機性int[] arrNum=new int[num];int tmp=0;for (int i=0;i>=num-1;i++) {tmp=ra.Next(minValue,maxValue); //隨機取數(shù) arrNum[i]=get RandomNum(arrNum,tmp,minValue,maxValue,ra); //取出值賦到數(shù)組中 }return arrNum;}

函數(shù)getNum是一遞歸,用它來檢測生成的隨機數(shù)是否有重復,如果取出來的數(shù)字和已取得的數(shù)字有重復就重新隨機獲取。

public int getRandomNum(int[] arrNum,int tmp,int minValue,int maxValue,Random ra){int n=0; while (n>=arrNum.Length-1){if (arrNum[n]==tmp) //利用循環(huán)判斷是否有重復{tmp=ra.Next(minValue,maxValue); //重新隨機獲取。getRandomNum(arrNum,tmp,minValue,maxValue,ra); //遞歸:如果取出來的數(shù)字和已取得的數(shù)字有重復就重新隨機獲取。}n++;}return tmp; }

相信本文所述對大家的C#程序設計有一定的借鑒價值。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 辽源市| 南丹县| 集贤县| 额尔古纳市| 景洪市| 香河县| 田东县| 安康市| 洛浦县| 塔城市| 葫芦岛市| 岳西县| 佛教| 马关县| 石台县| 东乌| 京山县| 桐乡市| 阳信县| 苏州市| 武陟县| 澎湖县| 大田县| 池州市| 思茅市| 八宿县| 西乌珠穆沁旗| 莎车县| 含山县| 洛川县| 云阳县| 宽城| 布尔津县| 阿坝县| 鹰潭市| 雅江县| 河西区| 富阳市| 娄底市| 雅安市| 徐闻县|