为什么在XOR-Shift算法中使用Bitwise XOR运算符(用于生成随机数)而不是其他像OR,AND等等的按位运算?
答案 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
在数学意义上,第一个序列是纯粹生长的,最后一个序列正在减少,其中没有一个甚至产生看似随机的序列。