Алгоритмы PRNG: Mersenne Twister, PCG, Xorshift

Алгоритмические генераторы случайных чисел — основа большинства игровых систем. Разбираем три ключевых алгоритма.

Mersenne Twister (MT19937)

Наиболее распространённый алгоритм с периодом 2^19937-1. Используется в Python (random), Ruby, MATLAB. Преимущества: отличный статистический профиль, высокая скорость. Недостатки: большое состояние (2,5 КБ), предсказуемость при известном состоянии.

PCG (Permuted Congruential Generator)

Современный алгоритм от Мелиссы О'Нил. Сочетает линейный конгруэнтный генератор с выходной перестановкой. Преимущества: компактное состояние, статистическое качество Mersenne Twister, непредсказуемость выходных битов. Рекомендуется для новых проектов.

Xorshift

Семейство алгоритмов от Джорджа Марсальи. Xorshift128+ используется в V8 JavaScript. Преимущества: минимальное состояние, экстремальная скорость, простота реализации. Недостатки: требуется дополнительный этап перемешивания для криптографической стойкости.

Выбор алгоритма

Для игровых систем критичны: скорость генерации, статистическое качество, размер состояния. Mersenne Twister подходит для серверных расчётов, PCG — для клиент-серверной архитектуры, Xorshift — для высоконагруженных систем.