c#随机数始终相同

时间:2014-03-18 20:21:36

标签: random numbers repeat

Hy我想创建只包含0和1个元素的简单3x3矩阵。但是,当我创建包含3x3矩阵的my matrice对象Racunalo的2D数组5x5时,所有25个矩阵在完全相同的位置上都有0和1个元素,但我希望所有矩阵都不同。怎么做到的?如果有一些知道灵魂的好灵魂,我将非常感谢你的帮助。这是我的代码:

public class Racunalo
{
    public int[,] informacija = new int[3, 3];
    public void popuniInformacijuRacunala()
    {
        Random rand = new Random(Guid.NewGuid().GetHashCode());
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                informacija[i, j] = rand.Next(0,2);
            }
        }
    }
}

public class Resetka
{
    public static Racunalo[,] resetkaRacunala = new Racunalo[5, 5];

    public void popuniInformacijeSvihRacunala()
    {
        Racunalo rac = new Racunalo();
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                rac.popuniInformacijuRacunala();
                resetkaRacunala[i, j]=rac;
            }
        }

    }
}

1 个答案:

答案 0 :(得分:0)

您的问题是所有Randoms都是使用相同的种子创建的。 每个Racunalo都有相同的guid,因为它是一个对象标识符。 尝试创建一个没有参数的新随机

随机rand = new Random();

或每个随机播种不同的值(可能使用系统时钟时间)