C#产生随机数
.net.Frameword中提供了一个专门产生随机数的类System.Random,此类默认情况下已被导入,编程过程中可以直接使用,不需要“using System.Random”。
我们知道,计算机并不能产生完全随机的数字,它生成的数字被称为伪随机数,它是以相同的概率从一组有限的数字中选取的,所选的数字并不具有完全的随机性,但就实用而言,其随机程度已经足够了。
我们可以用以下两种方法初始化一个随机数发生器;
函数是这样用,比如100至999的随机数,不过这样会有重复。
Random ran=new Random();
intRandKey=ran.Next(100,999);
可以给Random一个系统时间做为参数,以此产生随机数,就不会重复了
第一种方法不指定随机种子,系统自动选取当前时前作随机种子:
Randomra=new Random();
第二种方法是指定一个int型的参数作为随机种子:
int iSeed=6;
Random ra=newRandom(iSeed);
下面我们要用到Random.Next()方法产生随机数。
ra.Next();
问题案例:
using System;
for (int i = 0; i <arr.Length;i++ )
{
Random ra = new Random();
arr[i] = ra.Next(10);
}
Console.WriteLine("数组序列是:");
foreach (int i in arr)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\r\n");
出现的随机数都一样。
using System;
Random ra = new Random();
for (int i = 0; i <arr.Length;i++ )
{
arr[i] = ra.Next(10);
}
Console.WriteLine("数组序列是:");
foreach (int i in arr)
{
Console.Write("{0} ", i);
}
Console.WriteLine("\r\n");