小编ber*_*ert的帖子

为什么 xorshift 随机数生成器似乎总是使用这些特定的移位?

我正在读一本解释异或移位算法的书(我知道,基本的东西)。然后,在互联网上进行更多搜索时,我发现所有基本示例似乎都将位右移/左移相同的“量”(13、17、5)。

例如:

struct xorshift32_state {
  uint32_t a;
};

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

    x ^= x << 13;
    x ^= x >> 17;
    x ^= x << 5;
    
    return state->a = x;
}
Run Code Online (Sandbox Code Playgroud)

13他们在所有示例中使用,17和是否有特殊原因5?是的,我也找到了其他例子,但这个例子一直在重复,我不知道数字选择是否微不足道。

c++ random algorithm xor

5
推荐指数
1
解决办法
1492
查看次数

标签 统计

algorithm ×1

c++ ×1

random ×1

xor ×1