C# 随机数的生成问题

C# 随机数的生成问题,c#,c#-2.0,C#,C# 2.0,可能重复: 亲爱的朋友们 我想在1-55之间生成4个随机数,但问题是大部分时间我都会收到2个相同的数字:(例如,生成的数字是2 2 5 9或11 11 22! 我不知道为什么? 我使用: 用于生成我的随机数。我将它们放在一段时间内重复4次。有什么想法吗?你能帮我吗?你应该只创建一个random()对象并重用它,而不是为生成的每个随机数创建一个新对象 原因是每次你创建一个新的随机对象时,它都会从当前时间开始自动播种。如果你在短时间内创建多个随机对象,那么它们将在同一时间播种,因此它们将生成相同的

可能重复:

亲爱的朋友们

我想在1-55之间生成4个随机数,但问题是大部分时间我都会收到2个相同的数字:(例如,生成的数字是2 2 5 9或11 11 22! 我不知道为什么? 我使用:


用于生成我的随机数。我将它们放在一段时间内重复4次。有什么想法吗?你能帮我吗?

你应该只创建一个random()对象并重用它,而不是为生成的每个随机数创建一个新对象


原因是每次你创建一个新的随机对象时,它都会从当前时间开始自动播种。如果你在短时间内创建多个随机对象,那么它们将在同一时间播种,因此它们将生成相同的数字。

你应该只创建一个随机()对象并重用它,而不是为生成的每个随机数创建一个新的


原因是每次创建一个新的随机对象时,它都会从当前时间开始对自身进行种子设定。如果在短时间内创建多个随机对象,那么它们将在同一时间进行种子设定,因此它们将生成相同的数字。

当您创建一个
新的随机对象()
在不指定种子的情况下,它使用当前系统时间对其进行种子设定

我记不清它使用的精度(滴答?毫秒?),但如果你创建新的
随机
对象并快速连续使用它们,它们很容易拥有相同的种子,从而返回相同的结果


创建一个
new Random()
,并反复调用
。下一个(最小值,最大值)

当您创建
new Random()
而不指定种子时,它将使用当前系统时间对其进行种子设定

我记不清它使用的精度(滴答?毫秒?),但如果你创建新的
随机
对象并快速连续使用它们,它们很容易拥有相同的种子,从而返回相同的结果


创建一个
new Random()
,并反复调用
.Next(min,max)

不要重新创建
Random
对象-重用单个实例。看看这就是随机性的问题:你永远无法确定它是否异常“无序”或者是真正随机的。不要重新创建
random
对象-重用单个实例。看看这就是随机性的问题:你永远无法确定它是异常的“无序”还是真正的随机。
Random random = new Random();
return random.Next(min, max);