Я просматривал книгу, в которой объяснялся алгоритм 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