Random 一个PRNG中有多少个州(比如梅森龙卷风),下一个州的分布情况如何?

Random 一个PRNG中有多少个州(比如梅森龙卷风),下一个州的分布情况如何?,random,mersenne-twister,Random,Mersenne Twister,对于像梅森龙卷风这样的PRNG,其周期为2^19937-1,PRNG是否有那么多的州?i、 e.由于PRNG不再处于其他状态,因此这些状态在该点开始重复 作为跟进,如果您在PRNG的当前状态下存在,下一个状态的分布情况如何?我正在运行长时间的模拟,并有兴趣找出使用随机种子的一个模拟何时可能会运行到使用不同随机种子的另一个模拟中存在的状态。伪随机数生成器(PRNG)通过对当前状态应用确定性函数来确定下一个状态,然后将该状态投影到返回位的数量上。问“如果你在当前状态下退出,下一个状态的分布是什么”基

对于像梅森龙卷风这样的PRNG,其周期为2^19937-1,PRNG是否有那么多的州?i、 e.由于PRNG不再处于其他状态,因此这些状态在该点开始重复


作为跟进,如果您在PRNG的当前状态下存在,下一个状态的分布情况如何?我正在运行长时间的模拟,并有兴趣找出使用随机种子的一个模拟何时可能会运行到使用不同随机种子的另一个模拟中存在的状态。

伪随机数生成器(PRNG)通过对当前状态应用确定性函数来确定下一个状态,然后将该状态投影到返回位的数量上。问“如果你在当前状态下退出,下一个状态的分布是什么”基本上是没有意义的。因为转换是确定的,所以从任何给定的状态都有一个且只有一个状态将成为下一个状态。最终你将不可避免地回到之前观察到的状态,从那一点开始,状态和它们相应的输出预测将以相同的顺序重复,我们说你的PRNG已经循环。循环长度由从起点(种子状态)可到达的唯一状态的数量决定,并以状态空间的大小为边界,但不一定等于状态空间的大小。例如,有些函数仅在被偶数播种时生成偶数,或者在被奇数播种时生成奇数。这两种情况都不会在重复之前产生所有可能的整数


Mersenne Twister通过具有19937位的状态空间实现了219937-1的周期长度。(如果我没记错的话,-1是因为所有0的状态都无法从任何其他非零状态中访问。)至于在两次运行中重叠状态的可能性,忘了它吧。为了让你知道21937—1是多么大,考虑如下:物理学家估计在已知宇宙中大约有1080个= 2266个亚原子粒子。如果您使用全状态初始化(例如,通过从
/dev/random
读取2.5KB到字节缓冲区)独立地进行了跑步播种,即使您使用的是1010个随机数,您也会问,您从219937-300个宇宙中两次拾取相同亚原子粒子的可能性有多大。它不会发生。

伪随机数生成器(PRNG)通过对当前状态应用确定性函数来确定下一个状态,然后将该状态投影到返回位数上。问“如果你在当前状态下退出,下一个状态的分布是什么”基本上是没有意义的。因为转换是确定的,所以从任何给定的状态都有一个且只有一个状态将成为下一个状态。最终你将不可避免地回到之前观察到的状态,从那一点开始,状态和它们相应的输出预测将以相同的顺序重复,我们说你的PRNG已经循环。循环长度由从起点(种子状态)可到达的唯一状态的数量决定,并以状态空间的大小为边界,但不一定等于状态空间的大小。例如,有些函数仅在被偶数播种时生成偶数,或者在被奇数播种时生成奇数。这两种情况都不会在重复之前产生所有可能的整数

Mersenne Twister通过具有19937位的状态空间实现了219937-1的周期长度。(如果我没记错的话,-1是因为所有0的状态都无法从任何其他非零状态中访问。)至于在两次运行中重叠状态的可能性,忘了它吧。为了让你知道21937—1是多么大,考虑如下:物理学家估计在已知宇宙中大约有1080个= 2266个亚原子粒子。如果您使用全状态初始化(例如,通过从
/dev/random
读取2.5KB到字节缓冲区)独立地进行了跑步播种,即使您使用的是1010个随机数,您也会问,您从219937-300个宇宙中两次拾取相同亚原子粒子的可能性有多大。这不会发生的