除非我在每次迭代结束时都暂停,否则为什么循环会产生相同的随机数?

时间:2018-11-26 03:44:27

标签: c# loops for-loop random

为什么这样做会根据SIZE产生不同的随机数?

for (int index = 0; index < SIZE; index++)
{
    Random rand = new Random();
    numbersArray [index] = rand.Next(0, 100);
    MessageBox.Show(index.ToString());
}

难道每个SIZE都会产生相同的数字吗?

for (int index = 0; index < SIZE; index++)
{
    Random rand = new Random();
    numbersArray [index] = rand.Next(0, 100);
}

我唯一的猜测是程序暂停时Random对象会刷新吗?

1 个答案:

答案 0 :(得分:-2)

    for (int index = 0; index < SIZE; index++)
    {
        Random rand = new Random();
        numbersArray [index] = rand.Next(0, 100);
        //index is not the actual random number!
        MessageBox.Show(index.ToString());
    }

在此代码中,您正在向自己显示数组的索引号,而不是实际的随机数,这也许就是您未获得预期结果的原因。 ;)