Random.Next() 总是 returns for 循环中的相同值

Random.Next() always returns same values in for loop

我目前正在编写一个程序,其中我希望随机化数组的所有值,尽管 Random.Next() 的输出是随机的,但它在 for 循环内不是随机的。

我的代码:

 for (int i = 0; i < simsToRun; i++)
            {
                Simulations[i, 0] = Simulations[i, 0] + (rand.Next(0, 3) / 100) - 0.01f; 
                Simulations[i, 1] = Simulations[i, 1] + (rand.Next(0, 3) / 100) - 0.01f; 
                Simulations[i, 2] = Simulations[i, 2] + (rand.Next(0, 3) / 10) - 0.1f; 
            }

随机化后的值示例:

模拟[0, 0] = 0.9

模拟[0, 1] = 1.1

模拟[0, 2] = 45

这是预期的,但是,这种确切的模式在整个循环中不断重复:

模拟[1, 0] = 0.9

模拟[1, 1] = 1.1

模拟[1, 2] = 45

等等... 有什么办法可以解决这个问题吗?

如果您需要任何额外信息,请告诉我

rand.Next(0, 3) / 100 始终为 0。您得到一个整数,即 0,1 或 2。然后除以 100,四舍五入为 0。

你想要

rand.NextDouble() 并调整结果范围以符合您的需要。 (它 returns 一个从 0.0 到 < 1.0 的数字)