-2

重複の可能性:
乱数ジェネレーターが計画どおりに機能しない(C#)

LinkedListのLinkedListがあり、入力後に表示しようとすると、rawは同じですが、最も興味深いのは、デバッグモードで異なる行を表示することです。ところで、私は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

しかし、異なる表示にする必要があります

4

2 に答える 2

1

これは「ランダムの使用方法」と重複している必要があります

var ranodGenerator = new Random();

この行は、乱数の作成を再開します。乱数ジェネレーターを1つ作成すると、寿命が大幅に向上します。

FAQは次のとおりです。乱数ジェネレーターは1つの乱数のみを生成します

于 2012-04-14T01:47:38.643 に答える
1

"Random ranodGenerator = new Random();"を移動します ファイルの先頭に移動し、マトリックス全体に同じものを使用します。

行ごとに新しいランダムオブジェクトを作成しています。新しいRandomオブジェクトを作成すると、最初から乱数の生成が開始されます。

プログラミングの乱数は実際にはランダムではありません。それらは、前の反復の結果に何度も適用される数式によって生成されます。

于 2012-04-14T01:55:23.213 に答える