Являются ли все генераторы псевдослучайных чисел в конечном итоге периодическими?


24

Являются ли все генераторы псевдослучайных чисел в конечном итоге периодическими? Или они вообще периодичны?

Под периодическим я подразумеваю, что, подобно рациональным числам, они в конце концов генерируют периодическую подпоследовательность ...

И псевдослучайный означает алгоритмическую / математическую генерацию случайных чисел ...


7
Это педантичное замечание, но на компьютере с конечной памятью каждая программа без остановок в конечном итоге является периодической. Вы можете проанализировать алгоритм как работающий на машине Тьюринга, но любой PRNG, использование памяти которого не ограничено во времени, не будет очень практичным.
Питер

@ Петр, говорите: «Любой PRNG, чье использование памяти не ограничено во времени, не будет очень практичным» Это может быть нецелесообразно, когда использование памяти является квадратичным или линейным по времени, но что, если оно только логарифмическое? Смотри мой ответ.
Дон Хэтч

Ответы:


39

Все псевдослучайные генераторы, которые не полагаются на внешнюю случайность и используют ограниченный объем памяти , обязательно в конечном итоге являются периодическими, поскольку они имеют конечное состояние. Вы можете думать о них как об огромных детерминированных конечных автоматах, которые имеют особые «выходные» состояния, в которых они дают свои выходные данные. Все конечные автоматы в конечном итоге являются периодическими, и поэтому все псевдослучайные генераторы создают в конечном итоге периодические выходные данные.

Однако продолжительность периода может быть огромной. Например, PRNG с криптографическим состоянием 128 битов может циклически повторяться один раз каждые битов вывода, и поэтому даже если выводить один бит каждую наносекунду, солнечная система будет мертвой до повторения PRNG.2128

22


Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
DW

Ссылка на чат не работает. Можно ли посмотреть журнал обсуждения? : / @DW
20

@ cchan3141, я восстановил его; попробуй сейчас. Однако следует помнить, что комментарии по своему замыслу являются временными, и то же самое относится и к чатам. Если вы найдете там что-нибудь, что имеет прочную ценность для других, я призываю вас предложить изменить ответ, чтобы включить эту информацию, или опубликовать новый собственный ответ. Спасибо!
DW

7

PRNG - это конечные автоматы. Если они основаны только на внутреннем вводе (в отличие от Poker Stars RNG, представляющего собой комбинацию аппаратного и программного обеспечения, непрерывно выделяющегося из ... звуковых образцов), вы получите (C, S1, ...) где C текущее (или предыдущее) значение, а S1, ... может быть набором состояний:

Если есть возможные значения N (так как память ограничена) C, и вы повторяете N + 1 раз, вы получите одно и то же значение для C как минимум дважды. Если вы повторяете 2N + 1 раз, вы получите одно и то же значение для C как минимум 3 раза.

Пусть T = (Ct, S1t, S2t) - определенное состояние (текущее значение и другие состояния).
Пусть M = # {значения для S1} X {значения для S2} X {...} - кардинал возможных комбинаций состояний (опять же: поскольку память ограничена).

Если вы повторяете алгоритм NM + 1 раз, вы достигнете, по крайней мере, в два раза одного и того же состояния (Ct, S1t, S2t, ...), создавая, таким образом, такое же выходное значение и ту же последовательность следующих состояний, что и в первый раз, и так становится периодическим.


6

Простой пример псевдослучайной последовательности, которая не является периодической: объединить двоичные представления всех натуральных чисел в порядке:

110111001011101111000...

(Добавьте «.» И это называется двоичной константой Champernowne .)

Конечно, это не очень высокое качество в отношении псевдослучайных последовательностей, но оно демонстрирует, что это возможно без использования большого количества памяти.

π2

Неограниченное требование к памяти не является проблемой для машины Тьюринга, и, вероятно, это также не проблема на практике, поскольку рост очень медленный, но это зависит от того, для чего вы собираетесь использовать эту вещь.

2128

2128

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.