我用
Random rnd = new Random();
x=rnd.Next(10);
但每次我得到相同的号码。 如何解决它并得到不同的数字?告诉我简单的方法。
感谢。抱歉英语不好。
答案 0 :(得分:13)
Random的默认构造函数使用当前时间作为其种子。因此,如果快速连续初始化多个Random对象(例如在循环中),它们将共享相同的种子。
创建一次Random对象并多次使用它,或者事先创建一个种子并用它来初始化你的生成器。
答案 1 :(得分:4)
MSDN明确解决了Random类的MSDN文档的备注部分中的这个“问题”,包括示例!
答案 2 :(得分:0)
答案 3 :(得分:-2)
确保只使用一次构造函数。你可以添加种子。
Random rnd = new Random(DateTime.Now.Millisecond);
然后你就可以实际打电话了。
x=rnd.Next(10);
但请确保你没有构造函数和循环内的Next()方法调用或类似的东西......