我试图制作一个伪随机数发生器并生成10000个数字。我想确定它是否存在循环?根据我的逻辑,可能存在最大长度(INT_MAX)**15
的循环 - 生成和测试,直到该值不可行。那么,有没有办法识别N个生成的数字(足够大 - 10007个数字)来估计那里的循环长度?
可能在R?
答案 0 :(得分:3)
您的问题的答案可能要复杂得多。测试PRNG中的弱点不是一个简单的问题,它高度依赖于用于PRNG的算法。如果您的PRNG类型为Linear congruential generator,则可以使用名为spectral test的测试。对于其他类型的PRNG,还有其他测试。
论文 TestU01: A C Library for Empirical Testing of Random Number Generators讨论理论并包含有关如何测试各种类型的软件示例。