我知道这个问题已经被多次提出,但这些解决方案都不适合我。
首先我在我的方法中这样做了RandomNumGenerator(items)
List<int> randNum = new List<int>();
foreach (var item in items)
{
randNum.Add(new Random(1000).Next());
}
这总是给我相同的号码,然后查看之后这个答案我这样做了:
Random rnd = new Random(1000);
foreach (var item in items)
{
randNum.Add(rnd.Next());
}
这给了我以下数字
325467165
506683626
1623525913
2344573
1485571032
现在,虽然这对于循环的每次迭代来说都很好,但这里的问题是,当我停止并重新运行应用程序时,我再次得到与之前得到的相同的数字。
325467165
506683626
1623525913
2344573
1485571032
这是仅在调试期间出现的行为还是每次调用时都会遇到相同的问题RandomNumGenerator
?
您正在播种Random
此处的实例始终具有相同的种子 1000:
Random rnd = new Random(1000);
这不会这样做,因为当前时间被用作种子:
Random rnd = new Random();
看看构造函数这需要一个int
.
为不同的 Random 对象提供相同的种子值会导致
每个实例产生相同的序列随机数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)