为什么他们在 XOR-Shift 算法中使用 Bitwise XOR 运算符?

Why they use Bitwise XOR operator in the XOR-Shift algorithm?

为什么在 XOR-Shift 算法(用于生成随机数)中使用按位异或运算符而不是其他按位运算符,如 OR、AND.. 等?

XOR 是唯一的按位运算符,它可以将位从 0 切换到 1,或从 1 切换到 0。这在任何反馈运算符中都是必不可少的,它应该生成一个非单调函数,特别是生成一个周期性函数函数,使得 f(n+N) = f(n),对于某些 N.

例如添加位会生成非周期性简单序列:

0, 1, 11, 111, 1111, 11111, ... 直到所有位都填满或 0, 10, 1010, 101010, 10101010, ...

A​​nding 位会产生相反的效果,其中起始值应设置为所有位:

1111111...1, ..., 1111, 111, 11, 1, 0

在数学意义上,第一个序列是纯粹增长的,最后一个序列是递减的,其中 none 甚至产生看似随机的序列。