c#中for循环内重复定义random随机数为什么旧版本生成一样的伪随机数而最新版本random生成真随机数?

c#中for循环内重复定义random随机数为什么旧版本生成一样的伪随机数而最新版本c#中random生成真随机数?

因为以前随机数种子跟时间戳关联,for中时间间隔短(几次之间一样的时间戳),随机数就一样。现在改了算法,具体要参考.net api了。

随机数的生成是从种子值开始。 如果反复使用同一个种子,就会生成相同的数字系列。 产生不同序列的一种方法是使种子值与时间相关,从而对于 Random 的每个新实例,都会产生不同的系列。 默认情况下,Random 类的无参数构造函数使用系统时钟生成其种子值,而参数化构造函数可根据当前时间的计时周期数采用 Int32 值。 但是,因为时钟的分辨率有限,所以,如果使用无参数构造函数连续创建不同的 Random 对象,就会创建生成相同随机数序列的随机数生成器。 下面的示例演示两个连续实例化的 Random 对象生成相同的随机数序列。

不知道您的论据是从哪里来的