我目前正在编写一个程序,希望数组的所有值都随机化,尽管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之间的数字(