В мире компьютерных технологий генераторы случайных чисел (ГСЧ) играют важную роль — от создания игровых миров до защиты данных в криптографии. Мутанка — это популярный алгоритм псевдослучайной генерации чисел, сочетающий простоту реализации с хорошими статистическими характеристиками.
Мутанка — это линейный конгруэнтный генератор (ЛКГ), создающий последовательность чисел, которые кажутся случайными, но на самом деле вычисляются по детерминированной формуле. Название происходит от слова "мутация", отражая способность алгоритма "преобразовывать" начальное число в сложную последовательность.
Важно понимать, что мутанка генерирует псевдослучайные числа — при одинаковом начальном значении (seed) последовательность будет повторяться. Это свойство полезно в играх для воспроизводимости результатов, но ограничивает использование в криптографии.
Базовый алгоритм мутанки использует следующую формулу:
Xn+1 = (a * Xn + c) mod m
Где:
Качественная реализация требует тщательного подбора параметров. В классической мутанке часто используются:
Мутанка находит применение в различных областях благодаря своей простоте и скорости работы:
Преимущества:
Недостатки:
Простая реализация мутанки на C-подобном языке:
unsigned int seed = 1;
unsigned int mutanka() {
seed = seed * 1664525 + 1013904223;
return seed;
}
Для получения числа в заданном диапазоне [0, N):
unsigned int random_num = mutanka() % N;
В 2025 году появились более совершенные ГСЧ, сохраняющие достоинства мутанки:
Однако мутанка продолжает использоваться в legacy-системах и образовательных целях.