为什么他们在异或移位算法中使用逐位异或运算符



为什么在XOR- shift算法(用于生成随机数)中使用Bitwise XOR操作符而不是其他Bitwise操作,如OR, AND..等等?

异或是唯一的位操作符,可以从0切换到1,或者从1切换到0。这在任何反馈算子中都是必要的,它应该生成一个非单调函数特别是生成一个周期函数,使得f(n+ n) = f(n),对于某个n

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

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

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

1111111…1,…, 1111, 111,11,0

在数学意义上,第一个序列是纯粹增长的,最后一个序列是递减的,它们都不会产生一个看起来随机的序列。

最新更新