PHP猴子选大王问题
2012-05-05 00:26
323 查看
问题简介:n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王.
这里使用一个递推公式:
f[i] = 0 i = 1
f[i] = (f[i-1] + m) % i i >= 2
f[i]表示有i只猴子时,每次剔除m只猴子,最后剩下的大王坐标(坐标从0开始),只有1只猴子时,大王坐标为0,依次递推,即可求得有i只猴子时最后的大王坐标
页面输出
4
这里使用一个递推公式:
f[i] = 0 i = 1
f[i] = (f[i-1] + m) % i i >= 2
f[i]表示有i只猴子时,每次剔除m只猴子,最后剩下的大王坐标(坐标从0开始),只有1只猴子时,大王坐标为0,依次递推,即可求得有i只猴子时最后的大王坐标
<html> <body> <?php function monkeyKing($n, $m) { //$n为猴子总数,$m为剔除猴子步长 $s = 0; //$s为大王坐标,只有一只猴子时,大王坐标为0 for($i = 2; $i <= $n; $i++) { //依次向后递推,求到共有$n只猴子,剔除步长为$m时的大王坐标 $s = ($s + $m) % $i; //大王坐标递推公式 } return $s; } echo monkeyKing(6, 2); ?> </body> </html>
页面输出
4
相关文章推荐
- php猴子选大王问题解决方法
- 约瑟夫问题的PHP实现——猴子选大王的问题
- php实现猴子选大王问题算法实例
- php猴子选大王问题解决方法
- 算法_php猴子选大王_约瑟夫问题
- php实现猴子选大王问题算法实例
- php猴子选大王问题解决方法
- 第二十四周项目4-猴子选大王(约瑟夫问题)
- 猴子选大王问题&&约瑟夫环问题
- 关于猴子选大王的问题
- 猴子称大王问题算法
- 【php】猴子排成一圈,选大王
- 数据结构之约瑟夫问题---猴子选大王
- WV.11-猴子选大王(约瑟夫环问题)
- 第二十四周项目4-猴子选大王(约瑟夫问题)
- 猴子选大王(约瑟夫环问题)的OO解法
- 约瑟夫问题(猴子选大王)
- 链表经典问题——猴子选大王
- 猴子选大王问题
- 猴子选大王问题