约瑟夫环问题的链表解法和数学解法(PHP)
2017-07-09 19:12
405 查看
约瑟夫环问题
一群猴子排成一圈。按1,2,…,n依次编号。然后从第1仅仅開始数,数到第m仅仅,把它踢出圈。从它后面再開始数,再数到第m仅仅。在把它踢出去…。如此不停的进行下去。直到最后仅仅剩下一仅仅猴子为止,那仅仅猴子就叫做大王。要求编程模拟此过程,输入m、n,输出最后那个大王的编号。
链表解法
function king($n,$m){ $monky = range(1,$n); $i = 0; while(count($monky)>1){ $i+=1; $head = array_shift($monky); if($i%$m!=0){ array_push($monky,$head); } } return $monky[0]; } echo king(10,3);
数学解法
- x’ = 2 3 4 5 0
- x = 0 1 2 3 4
- x’ = (x+m)%n
function king2($n,$m){ $r = 0; for($i=2;$i<=$n;$i++){ $r = ($r+$m)%$i; } return $r+1; } echo king2(10,3);
相关文章推荐
- 约瑟夫环问题的链表解法和数学解法(PHP)
- 约瑟夫环的链表解法和数学解法
- LA 3882 经典约瑟夫环问题的数学递推解法
- 约瑟夫环问题的数学解法
- 求约瑟夫环问题最后胜利者的一般解法以及数学推导方法
- 约瑟夫环问题的简单解法(数学公式法)
- 约瑟夫环问题数学解法
- 约瑟夫环的链表解法和数学解法
- 约瑟夫环问题的数组解法与单链表解法
- PHP实现的基于单向链表解决约瑟夫环问题示例
- 约瑟夫环问题的数学解法
- PHP实现单向链表解决约瑟夫环问题
- 约瑟夫环问题单循环链表解法
- 约瑟夫环问题数学解法
- 约瑟夫环问题数学解法
- php基于环形链表解决约瑟夫环问题示例
- 约瑟夫环问题 链表实现
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 约瑟夫环问题(丢手帕游戏)Java 链表实现