首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

Random重复有关问题。

2011-12-11 
Random重复问题。急,在线等for(inti0i 6i++){Randomr1newRandom()Response.Write(r1.Next(100,999))

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

热点排行