slimfast中国官网:C#随机数问题

来源:百度文库 编辑:高校问答 时间:2024/04/28 02:01:45
代码1:
...........
//输入数组:
for(int i=0;i<20;i++)
{
a[i]=ran();
}
............
//产生随机10-100之间的随机整数;
int ran()
{
int u;
Random f;
f=new Random();
reset:
u=(int)(100*f.NextDouble());
if(u<10)goto reset;
return u;
}
...........
产生的a[0]-a[19]的值都相同。

代码方案2:
.........
//输入数组:
for(int i=0;i<20;i++)
{
a[i]=ran(i);
}
.........
//产生随机10-100之间的随机整数;
int ran(int k)
{
int u;
Random f;
f=new Random(k);
reset:
u=(int)(100*f.NextDouble());
if(u<10)goto reset;
return u;
}
每次重新运行这段代码后,a[0]-a[19]的值都和原来的值相同。
有什么办法让a[0]-a[19]的值都是不同的随机数?

给Random一个系统时间做为参数,以此产生随机数,就不会重复了