Егор Васильев
август 2016.
4147

Как компьютер выбирает случайное число?

Ответить
Ответить
Комментировать
0
Подписаться
6
3 ответа
Поделиться
АВТОР ВОПРОСА ОДОБРИЛ ЭТОТ ОТВЕТ

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

Подлинно случайное число никаким алгоритмом получить невозможно, хотя существуют более или менее удачные алгоритмы. Их уязвимости -- периодичность появления одних и тех же чисел, зависимость друг от друга последовательных чисел, неравномерность распределения, обратимость.

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

Генераторы случайных чисел бывают разные :)

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

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

Поэтому, работа современных генераторов случайных чисел основана на физических случайных процессах. Например, радиоактивный распад атомов или тепловой шум в резисторе (явление, при котором на концах проводника возникает флуктуирующая разность потенциалов из-за хаотичного движения электронов).

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

Но и эти способы являются медленными. Поэтому, чаще всего с помощью специальных алгоритмов генерируются так называемые псевдослучайные числа - по многим параметрам их последовательность соответствует последовательности случайных чисел. Главное отличие состоит в том, что эти числа периодически повторяются

Я сдесь отвечал по теме:
https://thequestion.ru/questions/140731/kak-rabotaet-generator-sluchainykh-chisel-yavlyaetsya-li-on-dokazatelstvom-sushestvovaniya-primitivnogo-iskusstvennogo-intellekta

Ответить