Mik*_*e G 3 algorithm math bit-manipulation bit-shift
我想知道一些循环移位的应用实例.例如,无符号整数的右移将导致除以2.相反,左移将导致乘以2.是否存在二进制数的循环移位的任何着名/有趣属性.
注意:右/左移位的示例是说明该特定运算符的应用.我要求循环移位操作符/功能的类似示例.
tem*_*def 5
圆形变换出现的一个令人惊讶的地方是约瑟夫斯幸存者问题.在这个略带病态的问题中,n个人围成一圈.第一个人杀死第二个,然后第三个人杀死第四个,等等.这个过程重复,一个人杀死下一个人,直到只剩下一个人.问题是n人,哪个人幸存?
令人惊讶的是,通过在n上进行正确的循环移位来给出答案.在Graham,Knuth和Patashnik的书" 混凝土数学"中有很好的证明.
希望这可以帮助!
Evg*_*uev 5
t = rand(); result = t XOR cshift(t,1)
2 (mod (2^N - 1))
归档时间:
12 年,7 月 前
查看次数:
1358 次
最近记录: