Разновидности генераторов случайных чисел
Добавлено: 27.01.2016, 09:44
Интересно узнать, какие бывают генераторы случайных (или псевдослучайных) чисел и на каких принципах они работают. Я пока такие генераторы:
1) Набрать большой массив случайных чисел и перебирать их от первого к последнему, потом снова первое и т.д. Недостаток – эти случайные числа будут повторяться, т.е. это скорее псевдослучайные числа.
Может быть, можно придумать какой-то сложный алгоритм типа перескока по индексам в зависимости от текущего числа, но по-моему это ничего принципиально не измерит и не улучшит.
В данном случае это пример детерминированного ГПСЧ. Как я понял, алгоритм линейного конгруэнтного генератора – это не ГСЧ, а детерминированный ГПСЧ, т.е. разновидность того же самого.
2) Рассчитывать десятичное разложение числа Pi до любого знака. Недостаток – чем дальше считать, тем больше компьютерных ресурсов будет на это требоваться. Мне интересно, по какой формуле будет происходить падение производительности в зависимости от номера цифры, причём в двух вариантах – на классическом компьютере и на квантовом.
В Вики вроде этого ГСЧ нет. Считается что последовательность десятичного разложения Pi абсолютно случайна, значит если считать это число неопределённо далеко, получится настоящий ГСЧ (а не ГПСЧ) – у которого есть недостаток, что он со временем работает всё медленнее и медленнее. Но может быть, на квантовом компьютере это не будет актуальной проблемой?
3) ГСЧ с источником энтропии – это в данном случае мне не очень интересно: конечно, легко получить настоящее случайное число, подкинув монетку, но в данной теме я предлагаю обсуждать чисто математические ГПСЧ. Может ли в мире математики родиться хаос?
4) Я слышал, недавно появились какие-то ГСЧ или ГПСЧ на основе клеточных автоматов, что это такое?
1) Набрать большой массив случайных чисел и перебирать их от первого к последнему, потом снова первое и т.д. Недостаток – эти случайные числа будут повторяться, т.е. это скорее псевдослучайные числа.
Может быть, можно придумать какой-то сложный алгоритм типа перескока по индексам в зависимости от текущего числа, но по-моему это ничего принципиально не измерит и не улучшит.
В данном случае это пример детерминированного ГПСЧ. Как я понял, алгоритм линейного конгруэнтного генератора – это не ГСЧ, а детерминированный ГПСЧ, т.е. разновидность того же самого.
2) Рассчитывать десятичное разложение числа Pi до любого знака. Недостаток – чем дальше считать, тем больше компьютерных ресурсов будет на это требоваться. Мне интересно, по какой формуле будет происходить падение производительности в зависимости от номера цифры, причём в двух вариантах – на классическом компьютере и на квантовом.
В Вики вроде этого ГСЧ нет. Считается что последовательность десятичного разложения Pi абсолютно случайна, значит если считать это число неопределённо далеко, получится настоящий ГСЧ (а не ГПСЧ) – у которого есть недостаток, что он со временем работает всё медленнее и медленнее. Но может быть, на квантовом компьютере это не будет актуальной проблемой?
3) ГСЧ с источником энтропии – это в данном случае мне не очень интересно: конечно, легко получить настоящее случайное число, подкинув монетку, но в данной теме я предлагаю обсуждать чисто математические ГПСЧ. Может ли в мире математики родиться хаос?
4) Я слышал, недавно появились какие-то ГСЧ или ГПСЧ на основе клеточных автоматов, что это такое?