Если быть точным, отстающий Фибоначчи является генератором случайных чисел псевдо . Это не совсем случайно, но это намного лучше, чем, скажем, более часто используемый линейный конгруэнтный генератор (стандартный генератор для C ++, Java и т. Д.). Я не уверен, почему вы думаете, что он снова и снова будет давать одно и то же число, но это правда, что , как и все генераторы псевдослучайных чисел, имеет период , после которого последовательность чисел повторяется снова.
Мультипликативный LFG имеет период (2^k - 1)*2^(M-3)
. Для практических параметров, это на самом деле довольно огромный (период LCG составляет всего M
).
Единственный недостаток LFG заключается в том, что процедура инициализации очень сложна, а математика, стоящая за ней, неполна. Лучше всего обратиться к литературе для правильного выбора параметров и рекомендуемой процедуры для правильного посева.
В качестве иллюстрации мультипликативный LFG с параметрами (j=31, k=52)
и модулем m=2^32
засеян массивом из 52 32-битных чисел.
Дополнительные ссылки: