Открыть сервисСервис

Рандом — понятие случайности в математике и информатике

Рандом (от англ. random — «случайный») — в широком смысле обозначает результат процесса, при котором исход не может быть точно предсказан заранее, а выбирается из множества возможных вариантов без видимой закономерности. В математике и информатике под рандомом понимают либо сам процесс генерации случайных величин, либо полученное в результате значение. Термин широко используется в повседневной речи как синоним слова «случайность», а в программировании — как обозначение функций и алгоритмов, выдающих непредсказуемые значения.

Случайность и детерминизм

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

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

Математическая теория вероятностей

В математике рандом формализуется через понятие случайной величины — функции, значения которой определяются случайным образом согласно заданному распределению вероятностей. Основные понятия:

  • Пространство элементарных исходов — множество всех возможных результатов (например, {орёл, решка} при подбрасывании монеты).
  • Вероятность — число от 0 до 1, характеризующее likelihood наступления события.
  • Распределение — закон, по которому вероятности распределены между возможными значениями (нормальное, равномерное, пуассоново и другие).

Классический пример рандома — подбрасывание честной монеты: вероятность каждого из двух исходов равна 0,5. Более сложные примеры — генерация равномерно распределённого вещественного числа на отрезке [0, 1] или выбор случайного элемента из массива данных.

Псевдослучайность в вычислительной технике

Компьютеры по своей природе детерминированы: любой программный код выполняется строго по заданному алгоритму. Поэтому «настоящая» случайность в программировании недостижима без использования внешних источников энтропии. Вместо этого применяются псевдослучайные генераторы (PRNG) — алгоритмы, которые на основе начального значения (seed) вычисляют последовательность чисел, обладающих статистическими свойствами случайной последовательности.

Наиболее известные алгоритмы:

АлгоритмГодОсобенности
LCG (ликонгруэнтный)1949Простая формула, используется в ранних играх и системах
Mersenne Twister1997Длинный период (2^19937−1), стандарт в Python, PHP, Ruby
xorshift2003Быстрый, не требует больших таблиц состояния
PCG2014Компактный, хорошее качество выходной последовательности

Для криптографии обычные PRNG не подходят, так как их выход предсказуем при известном seed. Вместо них используют криптографически стойкие генераторы (CSPRNG), например /dev/urandom в Linux или CryptGenRandom в Windows, которые черпают энтропию из аппаратных шумов — таймингов прерываний, движений мыши, шума процессора.

Генерация настоящей случайности

Настоящие генераторы случайных чисел (TRNG) используют физические явления: радиоактивный распад, шум диода, атмосферные помехи. В России работающие аппаратные генераторы случайных чисел выпускаются, в частности, для систем криптозащиты и применяются в ГОСТ-сертифицированных криптографических модулях. Некоторые онлайн-сервисы, например, проект Random.org, генерируют числа на основе атмосферного шума.

Применение рандома

Случайные числа и процессы используются в самых разных областях:

  • Статистика и моделирование — метод Монте-Карло позволяет оценить сложные интегралы и вероятности через многократные случайные выборки; применяется в физике, экономике, инженерии.
  • Компьютерные игры — генерация уровней, выпадение предметов, поведение неигровых персонажей.
  • Криптография — создание ключей шифрования, генерация одноразовых паролей.
  • Машинное обучение — перемешивание обучающих данных, инициализация весов нейронных сетей, стохастический градиентный спуск.
  • Научные эксперименты — рандомизированные контролируемые исследования, рандомизация участников по группам для исключения систематических ошибок.

Рандом в повседневной жизни

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

Историческая справка

Понятие случайности изучается с античности: атомисты Демокрит и Левкипп предполагали, что природа состоит из атомов, движущихся хаотически. Систематическая математическая теория вероятностей возникла в XVII веке в связи с задачами азартных игр — Блез Паскаль и Пьер де Ферма заложили её основы в переписке 1654 года. Термин «генератор случайных чисел» появился в XX веке вместе с развитием вычислительной техники.

Источники

  • Феллер, В. Введение в теорию вероятностей и её приложения
  • Кнут, Д. Искусство программирования, том 2: получисленные алгоритмы
  • ГОСТ Р 34.13-2018 «Информационные технологии. Криптографическая защита информации. Хеш-функция»
  • Press, W. et al. Numerical Recipes: The Art of Scientific Computing
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru