Почему генератор случайных чисел xorshift всегда использует именно эти сдвиги?C++

Программы на C++. Форум разработчиков
Anonymous
Почему генератор случайных чисел xorshift всегда использует именно эти сдвиги?

Сообщение Anonymous »

Я просматривал книгу, в которой объяснялся алгоритм xorshift (я знаю базовые вещи). Затем, поискав еще немного в Интернете, я обнаружил, что все основные примеры сдвигают биты вправо/влево на одну и ту же «количество» (13, 17, 5).
Например:

Код: Выделить всё

struct xorshift32_state {
uint32_t a;
};

uint32_t xorshiftTransform(struct xorshift32_state *state) {
uint32_t x = state->a;

x ^= x > 17;
x ^= x a = x;
}
Есть ли конкретная причина, по которой во всех примерах используются 13, 17 и 5? Да, я нашел и другие примеры, но этот продолжает повторяться, и я не знаю, тривиален ли выбор чисел или нет.


Подробнее здесь: https://stackoverflow.com/questions/715 ... e-specific

Вернуться в «C++»