我不明白。如果它有一个固定的长度,一遍又一遍地选择滞后和模数会得到相同的数字,不是吗?
最佳答案
准确地说,滞后斐波那契是一个伪随机数生成器。它不是真正的随机,但比更常用的 linear congruential generator 好很多 (C++、Java 等的标准生成器)。我不确定您为什么认为它会再次给出相同的数字,但确实像所有伪随机数生成器一样,它有一个句点,之后数字序列将再次重复.
乘法 LFG 的周期为 (2^k - 1)*2^(M-3)
。对于实际参数来说,这其实是相当大的(LCG的周期只有M
)。
LFG 的唯一问题是初始化过程非常复杂,而且其背后的数学原理并不完整。最好查阅文献以选择合适的参数和推荐的正确播种程序。
作为示例,具有参数 (j=31, k=52)
和模数 m=2^32
的乘法 LFG 的种子数组为 52 32 -位数。
其他引用资料:
- http://sprng.fsu.edu/Version4.0/generators.html
More details on this generator and the seeding algorithms can be found in papers by Mascagni, et al.
关于c - 滞后的斐波那契生成器是如何随机的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2360890/