我有以下代码。随机r的作品,并得到我约10%,如果。然而,rr似乎并不奏效。它总是返回0.我做错了什么?嵌套随机发生器不是随机的
我想在两个选择中随机选择10%的时间。这是在一个asp.net应用程序。代码在点击按钮时执行。
Random r = new Random();
Random rr = new Random();
int randomnum = r.Next(0, 100);
if (randomnum <= 10)
{
int randompick = rr.Next(0, 2);
if (randompick == 0)
{
难道你只是使用相同的随机选择对象? – 2012-08-03 23:21:35
** NB ** _“默认种子值是从系统时钟派生的,并具有有限分辨率。因此,通过调用默认构造函数紧密连续创建的不同Random对象将具有相同的默认种子值,并且,因此,将产生相同的随机数集合。“_ http://msdn.microsoft.com/en-us/library/h343ddh9.aspx – 2012-08-03 23:22:32
”随机“类的良好经验法则:不要重新构造每次你需要一个号码时,RNG。创建一个'Random',将其存储在一个具有类作用域的变量中,只要需要一个数字,就调用'r.Next(X,Y)'。 – 2012-08-03 23:24:06