⚡️ Генератор случайных чисел всего из трёх XOR и сдвигов



В 2003 году Джордж Марсалья представил xorshift — один из самых простых и быстрых генераторов псевдослучайных чисел.

Пример xorshift32:

uint32_t xorshift32(void) {
state ^= state << 13;
state ^= state >> 17;
state ^= state << 5;
return state;
}

Вся суть алгоритма:

сдвиг → XOR
сдвиг → XOR
сдвиг → XOR

С ненулевым начальным состоянием период может достигать 2³² - 1. Алгоритм не использует умножения и деления, поэтому идеально подходит для игр, симуляций и процедурной генерации, где важна скорость.

Но есть важное "но": xorshift не подходит для криптографии. Его состояние предсказуемо, поэтому для ключей и токенов нужны криптографически стойкие генераторы.

Иногда действительно полезный алгоритм помещается всего в три строки.
Просмотры: 8 212
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти