Random.Next()在for循环中总是返回相同的值



我目前正在编写一个程序,希望数组的所有值都随机化,尽管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()和调整结果的范围以匹配您的需要。(返回0.0到<1.0之间的数字(

最新更新