电子有限公司经营范围:C#:帮忙看一下这一小段代码。

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/05 18:55:30
............
//输入数组:
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]都相同?有什么办法解决a[0]-a[19]都是重新生成的随机数?

把你的随机数加一个种子,然后再取随机数

这个我写的其它程序没有改,不过你可以看一个随机数怎么生成,加一个种子就可以了:

#region 生成随机代码
private string CreateRandomCode(int codeCount)
{
string allChar = "0,1,2,3,4,5,6,7,8,9" ;
string[] allCharArray = allChar.Split(',');
string randomCode = "";
int temp = -1;

Random rand = new Random();
for(int i = 0; i < codeCount; i++)
{
if(temp != -1)
{
rand = new Random(i*temp*((int)DateTime.Now.Ticks));
}
int t = rand.Next(10);
if(temp == t)
{
return CreateRandomCode(codeCount);
}
temp = t;
randomCode += allCharArray[t];
}
return randomCode;
}
#endregion