算法(约瑟夫算法或猴子找大王)

     猴子(约瑟夫算法)


//11只猴子
//思路 没有叫到的删除掉原来的位置,加到后面
//原理:循环链表
//$monkeys = [1,2,3,4,5,6,7,8,9,10];
//$king = chooseMonkeyKing($monkeys,3);
//print_r($king);
////求交集取出来原始位置
//$king_pos = array_intersect($monkeys, $king);
//echo '<pre>';
//print_r($king_pos);
//function chooseMonkeyKing($arr,$callNum)
//{
// if(count($arr) == 0 || $callNum <= 0)
// {
// exit("玩勺子把去吧!");
// }
//
// //定义一个循环的全局变量
// $i = 1 ;
// while(count($arr) > 1)
// {
// //如果取余为0 ,说明该猴子应该被T除。
// if( $i % $callNum == 0)
// {
// unset($arr[$i-1]);
// }
// else
// {
// //把当前的猴子加入到数组队尾,同时删除该位置的猴子
// array_push($arr,$arr[$i-1]);
// unset($arr[$i-1]);
// }
//
// $i++;
// }
//
// return $arr;
//}
posted @ 2021-01-21 13:56  “码”搬运工  阅读(72)  评论(0)    收藏  举报