如何生成具有相同函数的不同随机数c#

时间:2016-11-20 08:23:08

标签: c# random xamarin

在我的程序中,我有以下两个类的代码:

Random Rand = new Random ();
        _x = (Rand.Next (0, 31));
        _y = (Rand.Next (0, 23));

问题出在程序运行时。这两个类都生成完全相同的数字。我怎样才能以两种坐标(_x& _y)生成不同的方式对其进行编码,这样我可以有两个不同的坐标?

我在Xamarin Studio中使用C#。

1 个答案:

答案 0 :(得分:0)

您需要确保使用Random的不同种子实例化这两个类。如果两个类紧密地实例化,那么时钟可能没有移动到下一个tick并且它们都获得相同的种子。你需要确保这两个类得到不同的种子。

执行此操作的一种方法是使用主Random为其他两个实例生成种子:

Random masterRandom = new Random((int)DateTime.Now.Ticks);
Random r1 = new Random(masterRandom.Next(0, 100000));
Random r2 = new Random(masterRandom.Next(0, 100000));

因为时钟只调用一次,所以两个调用紧密相连没有问题。 Random的其他实例从masterRandom获取种子,而不是时钟。