约瑟夫问题非递归

来源:互联网 发布:超级基因优化液起点 编辑:程序博客网 时间:2024/06/06 03:44

算法作业 约瑟夫非递归算法

n=+l 其中0<l<,则结果为Jn=2*l+1。[wikipedia]

N=1时显然成立。

n=k时成立,仅证明k%4==1的情况,其他类似:

k=4a+1

Jk=2J2a+1=4Ja-1

Jk+1=2J2a+1-1=4Ja+1

Jk+1-Jk=2

所以Jk+1=2*+1 

得证。

java实现


package gt.small;public class Josephus {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint total = 2;while (total < 16) {int mask = 0x40000000;while ((mask & total) == 0) {mask >>>= 1;}int l = total - mask;System.out.println(2 * l + 1);++total;}}}


原创粉丝点击