如何为随机类设定种子,以避免获得重复的随机值[duplicate]
:
随机数生成器仅生成一个随机数 (9个答案)
3年前关闭。
我在静态类的静态方法中有以下代码:
Random r = new Random();int randomNumber = r.Next(1,100);
我在循环中有这个,我一直都一样randomNumber
!
有什么建议吗?
回答:
您不应Random
在循环中创建新实例。尝试类似的方法:
var rnd = new Random();for(int i = 0; i < 100; ++i)
Console.WriteLine(rnd.Next(1, 100));
Random
假设单个实例生成的随机数序列是均匀分布的。通过Random
快速连续地为每个随机数创建一个新实例,您很可能使用相同的值为它们播种并让它们生成相同的随机数。当然,在这种情况下,生成的序列将远非均匀分布。
为了完整起见,如果您确实需要重新设定Random
,Random
则将使用新种子创建一个新实例:
rnd = new Random(newSeed);
以上是 如何为随机类设定种子,以避免获得重复的随机值[duplicate] 的全部内容, 来源链接: utcz.com/qa/404804.html