Random 不';没有最长的周期

Random 不';没有最长的周期,random,32-bit,prng,Random,32 Bit,Prng,是否存在周期大于或小于(2^32-1)的32位伪随机数生成器(PRNG) 我也希望有可靠的资料来源(书籍、研究论文等)使用它,谢谢 有许多不同时期的PRNG。周期由PRNG保持的状态空间大小限定,而不是由每个整数的位数限定。例如,Java使用了一个。已故的乔治·马萨格里亚(George Marsaglia)创建了“发电机”,将较小发电机的结果与相对最佳的循环长度合并,得到约2250个循环长度。正如@Michael在评论中指出的那样,它有一个巨大的时期219937-1。彼埃尔L'ECuue被认为是

是否存在周期大于或小于(2^32-1)的32位伪随机数生成器(PRNG)


我也希望有可靠的资料来源(书籍、研究论文等)使用它,谢谢

有许多不同时期的PRNG。周期由PRNG保持的状态空间大小限定,而不是由每个整数的位数限定。例如,Java使用了一个。已故的乔治·马萨格里亚(George Marsaglia)创建了“发电机”,将较小发电机的结果与相对最佳的循环长度合并,得到约2250个循环长度。正如@Michael在评论中指出的那样,它有一个巨大的时期219937-1。彼埃尔L'ECuue被认为是这个主题的世界领导者,你可以从ELSVIER出版物《操作研究和管理科学手册:模拟》中读到很多关于PRNGs的主题是非常明确的。(他的许多其他同余生成器可能也对您感兴趣,包括直接的和作为他在该领域专业知识的证据。)

线性同余生成器的周期通常正好为(2^n)。这显然大于(2^n-1),并且只使用n位状态(在您的例子中,n=32)——但这是具有32位状态的PRNG的绝对上限


带进位的乘法生成器可以安排为具有任何安全素数的周期,并且可以选择使用32位算术或使用32位状态缓冲区的配置,以您需要的为准。对于32位状态配置,所有可能的周期都将小于(2^32-1)。

“Mersenne Twister的常用版本MT19937产生一个32位整数序列,具有以下理想特性:它的周期非常长,为2^19937− 1.“32位是什么意思?如果您只是想使用32位算术,那么您可以实现您可以定义的任何PRNG。事实上,许多通常被认为是“32位”的东西实际上实现了一个逻辑字长更大的算法,就像分解任何其他算法一样。