可能重复:
Random number generator not working the way I had planned (C#)
我有LinkedList的LinkedList,当我在填充后尝试显示时,原始内容是相同的,但最奇怪的是在调试模式下它会显示不同的行。 顺便说一句,我有VS11测试版。
private LinkedList<LinkedList<int>> grid = new LinkedList<LinkedList<int>>();
public void CreateMatrix(int rows, int coloumns, int maxSize)
{
for(int i = 0; i < rows;i++)
{
grid.AddFirst(generateList(coloumns, maxSize));
}
}
private LinkedList<int> generateList(int size, int maxSize)
{
var ranodGenerator = new Random();
var list = new LinkedList<int>();
for (int j = 0; j < size; j++)
{
list.AddFirst(ranodGenerator.Next(maxSize));
}
return list;
}
public void DisplayMatrix()
{
foreach (var list in grid)
{
foreach (var i in list)
{
Console.Write(i+ " ");
}
Console.WriteLine();
}
}
所以
之后MatrixManager matrixManager = new MatrixManager();
matrixManager.CreateMatrix(4,4,200);
matrixManager.DisplayMatrix();
它将显示4个相同的行
134 3 45 26
134 3 45 26
134 3 45 26
134 3 45 26
但应显示不同的
答案 0 :(得分:1)
这应该与“如何使用随机”
重复var ranodGenerator = new Random();
此行重新开始创建随机数。创建一个随机数生成器,生活会好得多。
以下是常见问题解答:Random number generator only generating one random number
答案 1 :(得分:1)
移动“Random ranodGenerator = new Random();”到文件的顶部,并使用相同的整个矩阵。
您正在为每一行创建一个新的随机对象。创建一个新的随机对象会从头开始生成随机数。
编程中的随机数实际上并不是随机的。它们是通过一个数学公式生成的,该公式一遍又一遍地应用于上一次迭代的结果。