Алгоритмы 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 — для высоконагруженных систем.