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

时间:2015-10-09 03:58:14

标签: algorithm bit-manipulation operators

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

1 个答案:

答案 0 :(得分:2)

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

E.g。添加位将生成非周期性简单序列:

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

Anding位会产生相反的效果,其中起始值应该是所有位设置:

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

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