ASP.net随机数应用实例

来源:互联网 发布:win10系统修复软件 编辑:程序博客网 时间:2024/05/11 22:08

对于随机数,大家都知道,计算机不可能产生完全随机的数字,所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。伪随机数的选择是从随机种子开始的,所以为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要。如果随机种子一样,那么同一个随机数发生器产生的随机数也会一样。一般地,我们使用同系统时间有关的参数作为随机种子,这也是.net framework中的随机数发生器默认采用的方法。
     我们可以使用两种方式初始化一个随机数发生器:
    第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:
random ro = new random(); 之后,我们就可以使用这个random类的对象来产生随机数,这时候要用到random.next()方法。这个方法使用相当灵活,你甚至可以指定产生的随机数的上下限。
不指定上下限的使用如下:
        int iresult;

iresult=ro.next(); 除了random.next()方法之外,random类还提供了random.nextdouble()方法产生一个范围在0.0-1.0之间的随机的双精度浮点数:
double dresult;
dresult=ro.nextdouble();
random.sample()方法是保护方法,只允许子类的对象访问,而random.sample()方法则可以看作是random.sample()的公开版本。一般地,用户在random的子类中重写sample()方法来得到更一般的分布。

        这个例子中,我们使用random.next()方法来产生随机数。

下面这个函数是这个例子的核心,我们利用他来产生一个随机的int数组:

private int []getrandomarray(int length,int up,int down){ int ifirst=0; int []rtarray=new int32[length]; random ro=new random(length*unchecked((int)datetime.now.ticks)); ifirst=ro.next(up,down); rtarray[0]=ifirst; for(int i=1;i 读者或许都注意到了,我们采用了一种相当麻烦的方式来产生这个随机数组,为什么不简单地使用如下代码呢?请先看下面代码,这里我们使用了系统时间作为随机种子,连续获取两个随机数,并且将其输出:

如何获得一个6位长随机数

Dim r As New Random()

Dim n As Integer = r.Next(100000, 999999)

原创粉丝点击