我想知道一些应用循环移位的例子。例如,对无符号整数的右移位将导致除以2。相反,左移位会导致乘法2。二进制数上的循环移位有什么著名的/有趣的性质吗?
注意:关于右/左移位的示例说明了该特定运算符的应用程序。我要求类似的例子循环移位运算符/函数。
发布于 2013-11-11 17:11:19
t = rand(); result = t XOR cshift(t,1)。2 (mod (2^N - 1))乘法密切相关。发布于 2013-11-11 07:52:07
圆周运动出现的一个令人惊讶的地方是约瑟夫斯幸存者问题。在这个有点病态的问题中,n人站成一个圆圈。第一个人杀死第二个人,然后第三个人杀死第四个人等等。这个过程重复着一个人杀死下一个人,直到只剩下一个人。问题是问n人,哪个人活下来了?
令人惊讶的是,答案是在n上做一个正确的循环移位。在Graham,Knuth和Patashnik的“具体数学”一书中有一个很好的证明。
希望这能有所帮助!
发布于 2013-11-11 08:04:13
正则左移位是2乘(mod 2^N),其中N是整数类型中的位数。
一个圆形左移位是2 (mod (2^n-1))的乘积。因此,在执行算术模(2^N-1)时,这是很方便的。
https://stackoverflow.com/questions/19899797
复制相似问题