链接列表中的<LinkedList>相同行



可能的重复项:
随机数生成器未按我计划的方式工作 (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

但应显示不同

应该是"如何使用随机"的副本

var ranodGenerator = new Random();

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

以下是常见问题解答:随机数生成器仅生成一个随机数

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

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

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

相关内容

  • 没有找到相关文章

最新更新