Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 梅森捻线机的特点-19937_Random_Prng - Fatal编程技术网

Random 梅森捻线机的特点-19937

Random 梅森捻线机的特点-19937,random,prng,Random,Prng,我有一个很简单的问题: 当我们使用Mersenne Twister-19937生成器并修复种子时,每次调用生成器时,它都会生成一个具有某些特征(独立性、均匀分布)的数字序列。这里重要的是独立性(或两个连续调用之间的低相关性) 现在,如果我有两个不同(但固定)种子的Mersenne Twister-19937,我调用每个生成器一次,会发生什么。在这种情况下,我得到的两组随机数的独立性、相关性结构如何 非常感谢不再有“保证”。很可能有一个随机生成器为两个不同的种子生成完全相同的值 这不是一个问题,除

我有一个很简单的问题: 当我们使用Mersenne Twister-19937生成器并修复种子时,每次调用生成器时,它都会生成一个具有某些特征(独立性、均匀分布)的数字序列。这里重要的是独立性(或两个连续调用之间的低相关性)

现在,如果我有两个不同(但固定)种子的Mersenne Twister-19937,我调用每个生成器一次,会发生什么。在这种情况下,我得到的两组随机数的独立性、相关性结构如何

非常感谢

不再有“保证”。很可能有一个随机生成器为两个不同的种子生成完全相同的值

这不是一个问题,除非你们依赖于某种随机性行为。主要的一点当然是密码学-加密随机数生成器非常努力地使其非常随机,即使您并行运行10个生成器。然而,这种方法无法达到重复性的目的(如程序生成等)

然而,这两台发电机确实独立地保持其担保。这意味着,只要它们不“交互”(例如,游戏中的两个区域,每个区域都有自己的生成器),随机性就会得到保留

一个很好的经验法则是测试它(除非随机性很关键,否则这就是数学:)。绘制图形。在现实世界中发现:)

编辑:既然您已经添加了特定的算法,让我稍微扩展一下答案。梅森龙卷风是相当随机的。然而,随机性在很大程度上取决于初始值。对于某些种子,即使有几个并行生成器,它也可能产生非常随机的值。对于某些种子,结果非常接近。正如维基所指出的:

这样做的结果是,生成器的两个实例以几乎相同的初始状态开始,在最终发散之前,将在多次迭代中输出几乎相同的序列


必须针对特定的发电机解决此问题。总的来说,任何事情都有可能发生。加密功能强大的生成器将完全没有相互关系。生成器
返回0有很多。谢谢!将尝试在现实世界中找到答案!:)好的,因此选择一种与另一种完全不同的种子应该有助于这一点matter@VLT的确然而,这比看起来更为棘手:D在创建不同的生成器时,可能会使用加密RNG为它们生成种子。然而,这也不能保证任何事情。总的来说,关注你的实际案例。唯一让你感到困扰的是,如果观察者发现了虚假的随机性(尽管注意到人们在没有模式的情况下也会过分热衷于寻找模式)。类似的种子问题只有在你不使用Mersenne Twister代码的默认种子算法而直接输入state=seed时才有效。默认的种子算法将随机化,类似的初始种子将导致完全不同的状态。