确切地说,滞后的Fibonacci是伪随机数发生器.这不是真正的随机,但它比更常用的线性同余生成器(C++,Java等的标准生成器)要好得多.我不确定为什么你认为它会再次给出相同的数字,但是它确实像所有伪随机数生成器一样,它有一段时间后数字序列将再次重复.
乘法LFG的周期为(2^k - 1)*2^(M-3).对于实际参数,这实际上是非常巨大的(仅限LCG的时期M).
LFG的唯一缺点是初始化过程非常复杂,其背后的数学是不完整的.最好参考文献,以获得良好的参数选择和适当播种的推荐程序.
作为说明,具有参数(j=31, k=52)和模数的乘法LFG以m=2^3252个32位数字的阵列播种.
其他参考:
关于这种发生器和种子算法的更多细节可以在Mascagni等人的论文中找到.
zda*_*dav -1
这一切都取决于种子。大多数随机数生成器确实为固定种子值提供相同的数字序列。