日期:2014-05-20  浏览次数:20383 次

Random重复问题。急,在线等
for(int   i=0;i <6;i++)
{
Random   r1=new   Random();
Response.Write(r1.Next(100,999));
}
为什么每次都一样能,我要每次都不一样的怎么实现。
谢谢

------解决方案--------------------
static Random rnd = new Random(); //定义在类型作用域

...

//下面在你的过程中
for(int i=0;i <6;i++)
{
Response.Write(rnd.Next(100,999));
}

------解决方案--------------------
楼主使用这一段代码

System.Text.StringBuilder newRandom = new System.Text.StringBuilder(6);
Random rd = new Random();
for (int i = 0; i < 6; i++)
{
newRandom.Append(rd.Next(100,999));
}
Response.Write(newRandom.ToString());
------解决方案--------------------
使用Randomize 函数在random前初使化一下就不会出现重复值了。
例:
Randomize()
Dim value As Integer = CInt(Int((6 * Rnd()) + 1))
------解决方案--------------------
使用相同种子,每次实例化后都一样. 你没有指定种子,默认是以时间为种子. for循环两次执行之间时间太短, 时间差很可能是0,这样就是相同的时间,就出来相同的结果了.

你不信试试在for里面sleep一下测试,结果就不一样了.