Почему генератор случайных чисел 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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