LinkedList <linkedlist> </linkedlist>中的相同行

时间:2012-04-14 01:37:59

标签: c# .net random linked-list

  

可能重复:
  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

但应显示不同的

2 个答案:

答案 0 :(得分:1)

这应该与“如何使用随机”

重复
var ranodGenerator = new Random();

此行重新开始创建随机数。创建一个随机数生成器,生活会好得多。

以下是常见问题解答:Random number generator only generating one random number

答案 1 :(得分:1)

移动“Random ranodGenerator = new Random();”到文件的顶部,并使用相同的整个矩阵。

您正在为每一行创建一个新的随机对象。创建一个新的随机对象会从头开始生成随机数。

编程中的随机数实际上并不是随机的。它们是通过一个数学公式生成的,该公式一遍又一遍地应用于上一次迭代的结果。