c#中的随机数

时间:2010-06-20 16:33:17

标签: c# random

我用

Random rnd = new Random();
x=rnd.Next(10);

但每次我得到相同的号码。 如何解决它并得到不同的数字?告诉我简单的方法。

感谢。抱歉英语不好。

4 个答案:

答案 0 :(得分:13)

Random的默认构造函数使用当前时间作为其种子。因此,如果快速连续初始化多个Random对象(例如在循环中),它们将共享相同的种子。

创建一次Random对象并多次使用它,或者事先创建一个种子并用它来初始化你的生成器。

答案 1 :(得分:4)

MSDN明确解决了Random类的MSDN文档的备注部分中的这个“问题”,包括示例!

http://msdn.microsoft.com/en-us/library/system.random.aspx

答案 2 :(得分:0)

强制性XKCD参考:

http://xkcd.com/221/

答案 3 :(得分:-2)

确保只使用一次构造函数。你可以添加种子。

Random rnd  = new Random(DateTime.Now.Millisecond);

然后你就可以实际打电话了。

x=rnd.Next(10);

但请确保你没有构造函数和循环内的Next()方法调用或类似的东西......