Josephus problem
2010-11-25 23:37
204 查看
据说,因为Josephus的数学天赋,才使得其生存下来。
环状链表,各一个删一个,最后剩下哪一个元素?
在具体数学一书中谈到,如果有n个人,那么J(n)=2l+1;即最后剩下的是最开始是序号为2l+1的成员。
而其中,n=2^m+l;
书中有相关n分别为奇数和偶数时的证明。
那么在计算机中如何实现呢?涉及到2的幂时,可以联想到应用计算机移位操作,左移一位计算机乘以2,而循环左移呢,
假设 n=(bmbm-1...b0)2
l=(0bm-1...b0)2
2l = (bm-1...b00)2
2l+1 = (bm-1...b0bm)2
由于bm=1,因此,在求解这个问题时,只需要将其二进制循环左移一位即可。
环状链表,各一个删一个,最后剩下哪一个元素?
在具体数学一书中谈到,如果有n个人,那么J(n)=2l+1;即最后剩下的是最开始是序号为2l+1的成员。
而其中,n=2^m+l;
书中有相关n分别为奇数和偶数时的证明。
那么在计算机中如何实现呢?涉及到2的幂时,可以联想到应用计算机移位操作,左移一位计算机乘以2,而循环左移呢,
假设 n=(bmbm-1...b0)2
l=(0bm-1...b0)2
2l = (bm-1...b00)2
2l+1 = (bm-1...b0bm)2
由于bm=1,因此,在求解这个问题时,只需要将其二进制循环左移一位即可。
相关文章推荐
- 约瑟夫环-链表和数组表示实现及分析(Josephus Problem)
- Solve Josephus Problem Using Erlang
- scau Josephus Problem
- 湘潭市赛 Josephus Problem 线段树
- lightoj 1179 - Josephus Problem 【约瑟夫环】
- 算法Sedgewick第四版-第1章基础-017一约瑟夫问题(Josephus Problem)
- 【算法实现】josephus problem
- Algorithm Gossip: 約瑟夫問題(Josephus Problem)
- Josephus Problem 约瑟夫环问题的讨论
- Light oj 1179 - Josephus Problem 【思维】
- josephus problem——约瑟夫问题
- Algorithm Gossip: 约瑟夫问题(Josephus Problem)
- josephus Problem 中级(使用数组模拟链表,提升效率)
- The Josephus Problem
- 约瑟夫问题(Josephus Problem)算法分析及代码
- josephus Problem 中级(使用数组模拟链表,提升效率)
- Josephus Problem
- Josephus problem(输出Josephus序列)
- Java-约瑟夫问题(Josephus Problem)
- 约瑟夫问题(Josephus problem)