是否有任何32位伪随机数生成器(PRNG)的周期大于或小于(2 ^ 32 - 1)?
我也非常感谢使用它的可靠来源(书籍,研究论文等),谢谢!
答案 0 :(得分:2)
有许多不同时期的PRNG。周期受PRNG维护的状态空间大小的限制,而不是每个整数的位数。例如,Java使用linear congruential generator with 48 bits of state。已故伟大的乔治·马萨利亚(George Marsaglia)创造了#34; The mother of all random number generators",汇集了具有相对主要周期长度的较小发电机的结果,以获得约2 250 的周期长度。正如@Michael在评论中指出的那样,Mersenne Twister有一个惊人的大期2 19937 -1。 Pierre L&#ecuyer被认为是这个主题的世界领导者,你可以从Elsevier出版物"操作手册中阅读许多人认为是关于PRNG主题的明确chapter的内容研究与管理科学:模拟"。 (他的许多其他publications也可能对您有意义,无论是直接还是他在该领域的专业知识的证据。)
答案 1 :(得分:0)
线性同余生成器通常具有精确的(2 ^ n)周期。这显然大于(2 ^ n-1),并且仅使用n位状态(在您的情况下n = 32) - 但它是具有32位的PRNG的绝对上限状态。
可以将带有乘法的发生器安排为具有任何安全素数的周期,并且可以选择配置以使用32位算术或使用32位状态缓冲器,无论您需要什么。对于32位状态配置,所有可能的周期将小于(2 ^ 32-1)。