时间:2021-05-20
本文实例讲述了C#生成互不相同随机数的实现方法,在进行C#应用程序设计时非常具有实用价值。本文详细讲述了其功能的实现过程。分享给大家供大家参考之用。具体方法如下:
一般来说,用C#生成足够随机的互不相同的随机数 Dotnet.Frameword中提供了一个专门产生随机数的类System.Random,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。
在使用随机数时,要先初始化一个随机数发生器.有两种方法;
第一种方法不指定随机种子,系统自动选取当前时前作随机种子:
第二种方法是指定一个int型的参数作为随机种子:
初始化完成后,用Random.Next()方法产生随机数。
ra.Next(); 它返回一个大于或等于零而小于2,147,483,647的数.
下面我们介绍它的重载函数和其它一些方法。
用法: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个互不相同的随机数,返回数组。{Random ra=new Random(unchecked((int)DateTime.Now.Ticks));//保证产生的数字的随机性int[] arrNum=new int[num];int tmp=0;for (int i=0;i>=num-1;i++) {tmp=ra.Next(minValue,maxValue); //随机取数 arrNum[i]=get RandomNum(arrNum,tmp,minValue,maxValue,ra); //取出值赋到数组中 }return arrNum;}函数getNum是一递归,用它来检测生成的随机数是否有重复,如果取出来的数字和已取得的数字有重复就重新随机获取。
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) //利用循环判断是否有重复{tmp=ra.Next(minValue,maxValue); //重新随机获取。getRandomNum(arrNum,tmp,minValue,maxValue,ra); //递归:如果取出来的数字和已取得的数字有重复就重新随机获取。}n++;}return tmp; }相信本文所述对大家的C#程序设计有一定的借鉴价值。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C#生成指定范围内的不重复随机数//Number随机数个数//minNum随机数下限//maxNum随机数上限publicint[]GetRandomArray
本文实例讲述了c#与js随机数生成方法。分享给大家供大家参考。具体如下:1.C#产生随机数方法:复制代码代码如下:Randomrd=newRandom();rd
本文实例展示了C#实现生成设置范围内的Double类型随机数的方法,对于C#的学习来说有不错的借鉴价值,分享给大家供大家参考。关键代码如下://////生成设置
本文实例总结了C#生成随机数的方法。分享给大家供大家参考。具体分析如下:开始,很简单地使用System.Random类来生成随机数。很快,问题就来了,发现当ra
本文介绍一个小编自己写的C#函数,它用于生成两个数之间的一个随机数。在C#中有一个Random类,使用它可以很方便的生成随机数。其实一个最重要的生成方式就是给它