Рандомность — понятие и применение¶
Рандом (от англ. random — «случайный») — разговорное обозначение случайности, процесса или выборки, при котором результат не поддаётся точному предсказанию. В широком смысле «рандомно» означает «случайным образом»: без определённого порядка, закономерности или заранее заданного алгоритма. Термин прочно вошёл в русский язык в 1990-е—2000-е годы вместе с распространением компьютеров и интернета и сегодня используется в повседневной речи, программировании, статистике, криптографии и играх.
¶Этимология и происхождение слова
Слово происходит от латинского random (в значении «по воле случая»), которое в свою очередь восходит к старофранцузскому randon — «порыв, стремительность, быстрое движение». В английском языке random изначально означало «беспорядочный, неупорядоченный, движущийся в случайном направлении» и лишь позже приобрело современное значение «выбранный без определённого плана».
В русский язык слово пришло как англицизм. До его распространения для описания аналогичного понятия использовались слова «случайный», «произвольный», «беспорядочный». В 1990-е годы с развитием компьютерных технологий и компьютерных игр закрепился глагол «рандомить» — «действовать или распределять что-либо случайным образом», а также существительное «рандом» в значении «случайная величина» или «случайный выбор».
¶Рандом в математике и статистике
В строгом научном смысле случайность изучается разделами математики — теорией вероятностей и математической статистикой. Ключевые понятия:
- Случайная величина — величина, значение которой не может быть предсказано заранее, но подчиняется определённому вероятностному распределению.
- Случайная выборка — подмножество данных, отобранное так, чтобы каждый элемент исходной совокупности имел равную вероятность попасть в выборку.
- Равномерное распределение — распределение, при котором все исходы равновероятны (например, бросок честного кубика).
- Математическое ожидание — среднее значение случайной величины, вычисляемое с учётом вероятностей всех исходов.
Случайность в математике не означает полного отсутствия закономерности: даже полностью случайная последовательность подчиняется статистическим закономерностям на больших объёмах. Например, при многократном подбрасывании монеты доля выпавших орлов будет стремиться к 50 % — это проявление закона больших чисел.
¶Генераторы псевдослучайных чисел
В вычислительной технике настоящая случайность недостижима в принципе: компьютер детерминирован и всегда выдаёт одинаковый результат при одинаковых входных данных. Поэтому для имитации случайности используются генераторы псевдослучайных чисел (ПСЧ) — алгоритмы, создающие последовательность чисел, которая выглядит случайной.
Простейший классический алгоритм — линейный конгруэнтный генератор, предложенный Дональдом Кнутом. Его принцип: следующее число вычисляется из предыдущего по формуле с умножением, сложением и взятием остатка от деления. Последовательность полностью определяется начальным значением — «зерном» (seed). Если зерно одинаково, последовательность повторится.
Для криптографии и научных задач, где требуется высокая степень случайности, используются аппаратные генераторы, черпающие энтропию из физических процессов: шума электронных компонентов, тепловых колебаний, задержек ввода-вывода. В Linux для этого служит устройство /dev/random и /dev/urandom, в Windows — API CryptGenRandom.
¶Рандом в программировании
Практически все языки программирования имеют встроенные функции случайных чисел. В Python это random.randint(), в JavaScript — Math.random(), в C++ — rand() из <cstdlib>. В большинстве случаев перед началом работы требуется инициализировать генератор (задать зерно), иначе последовательность будет одинаковой при каждом запуске программы.
Типичные задачи, где применяется рандом:
- генерация тестовых данных;
- симуляция физических процессов (метод Монте-Карло);
- процедурная генерация уровней, карт, предметов в играх;
- случайная выборка элементов из коллекции;
- криптографическое создание ключей и паролей.
¶Рандом в компьютерных играх
В игровой индустрии «рандом» — одно из ключевых механических понятий. Он определяет выпадение предметов (лут), поведение неигровых персонажей, результаты боевых действий в ролевых играх (броски кубиков, шансы критического удара), генерацию подземелий и карт.
Игры условно делятся на «рандомные» и «нерандомные» (или «скилл-бейсед»), где успех определяется только действиями игрока. На практике большинство игр сочетает оба подхода. Особый термин — «рандомный дроп» — выпадение предмета с определённой вероятностью, часто крайне низкой (например, 1 % или 0,1 %).
¶Рандом в повседневной речи
В неформальном общении «рандом» используется как синоним чего-либо непредсказуемого, бессистемного или абсурдного. Выражения «это чистый рандом», «рандомная фигня», «выпал в рандом» означают, что событие произошло без видимой причины или закономерности. Слово «рандомить» может означать как «действовать наугад», так и «выдавать случайные, непредсказуемые результаты».
¶Рандом и детерминизм
Философский аспект понятия связан с дискуссией о детерминизме — представлении, что все события предопределены причинно-следственными связями. Квантовая механика показала, что на фундаментальном уровне природа содержит настоящую, не сводимую к скрытым параметрам, случайность. Однако в макроскопическом мире и в вычислениях «рандомность» почти всегда оказывается псевдослучайностью — результатом сложности системы, но не её принципиальной непредсказуемостью.
¶Источники
- Кнут Д. «Искусство программирования», том 2: «Получисленные алгоритмы»
- Феллер В. «Введение в теорию вероятностей и её приложения»
- ГОСТ Р ИСО/МЭК 17928-2012 «Информационные технологии. Методы и средства защиты. Принципы и требования»
- Справочник по теории вероятностей и математической статистике
