Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

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

Технологии
Егор Васильев
  · 21,3 K
Android разработчик  · 13 сент 2015

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

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

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

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

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

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

пользователь TheQuestion.  · 19 июн 2015
Да, это серьезная задача в программировании. Случайные числа принципиально важны для шифрования, генерации паролей и в научных экспериментах. Подлинно случайное число никаким алгоритмом получить невозможно, хотя существуют более или менее удачные алгоритмы. Их уязвимости -- периодичность появления одних и тех же чисел, зависимость друг от друга последовательных чисел, не... Читать далее

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