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一下测试,结果就不一样了.