约瑟夫环-一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈

Posted 刹那风华——

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了约瑟夫环-一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈相关的知识,希望对你有一定的参考价值。

一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停 的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号(约瑟夫环)。

 

function fuhuan($allnum, $ti){
$arr = array();
for($i = 0; $i < $allnum; $i++){
$arr[$i] = $i;
}

$nums = 1;
while(count($arr) > 1){
foreach ($arr as $key => $value) {
if($nums == $ti){
unset($arr[$key]);
$nums = 1;
}else{
$nums++;
}
}
}
$new_arr = array_values($arr);
var_dump($new_arr[0] + 1);
}
fuhuan(10,10);

以上是关于约瑟夫环-一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈的主要内容,如果未能解决你的问题,请参考以下文章

约瑟夫环问题

约瑟夫环(猴子问题)递归思路解法

php解决约瑟夫环

一群猴子排成一圈,按1 2 3 ... n依次编号

猴子选大王(约瑟夫环)

猴子取大王