Источник: Nuances of Programming Что общего у любителей проходить видеоигры на скорость, азартных игроков и криптографов? Они зависят от случайных чисел. От перетасовки музыки до шифрования интернета, случайные числа — важнейшая часть современной жизни. И мы, как правило, полагаемся на компьютеры, которые генерируют их. Это заставляет задуматься: как именно компьютеры это делают? Скорее всего, вы когда-либо использовали генератор случайных чисел. Языки программирования очень упрощают это действие...
Генераторы случайных чисел являются чрезвычайно важной составляющей многих алгоритмах, к примеру, алгоритмов шифрования или численных методов Монте-Карло. Как известно, компьютеры являются детерминированными, предсказуемыми машинами. Если написать программу и выполнить ее при тех же условиях миллион раз, то вы получите миллион одинаковых ответов. Такая природа компьютеров очень хорошо служила нам на протяжении большей части прошлого века, но, к сожалению, эта конструкция имеет фундаментальный недостаток: компьютеры не могут выполнять случайные операции...