今天,我的朋友认为使用伪随机数生成器生成的伪随机数多次设置种子可以“使事情更加随机化”。
C#中的示例:
但是我认为这可能会增加伪随机数生成器使用重复种子的机会。
这将会:
1. 使事情更加随机化, 2. 让它循环一定数量的使用过的种子,或者 3. 对随机性没有影响(即既不增加也不减少)?
能否请伪随机数生成器方面的专家给出一些详细的解释,以便我能说服我的朋友?如果有人能进一步解释一些伪随机数生成器算法的细节,我将非常高兴。
C#中的示例:
// Initiate one with a time-based seed
Random rand = new Random(milliseconds_since_unix_epoch());
// Then loop for a_number_of_times...
for (int i = 0; i < a_number_of_times; i++)
{
// ... to initiate with the next random number generated
rand = new Random(rand.Next());
}
// So is `rand` now really random?
assert(rand.Next() is really_random);
但是我认为这可能会增加伪随机数生成器使用重复种子的机会。
这将会:
1. 使事情更加随机化, 2. 让它循环一定数量的使用过的种子,或者 3. 对随机性没有影响(即既不增加也不减少)?
能否请伪随机数生成器方面的专家给出一些详细的解释,以便我能说服我的朋友?如果有人能进一步解释一些伪随机数生成器算法的细节,我将非常高兴。