约瑟夫环问题

<?php
//约瑟夫环,选猴王
function pickKing($num, $m) {
$arr = array();
$a = '1';
for ($i=0; $i<$num; $i++) {
$arr[] = $a++; //赋值区
}
$i = 1;
while (count($arr) > 1) {
if ($i % $m != 0) {
$arr[] = $arr[$i-1]; //判断区
//print_r($arr);
}
unset($arr[$i-1]);
$i++;
}

return $arr;
}

echo '<pre>';
$arr = pickKing(3, 3);
print_r($arr);
echo '</pre>';

 
//选猴王2.
function yuesefu($n,$m){
$r = 0;
for($i=2;$i<=$n;$i++){
$r = ($r+$m)%$i;
}
return $r+1;
}
print_r(yuesefu(3,3));
?>

 

posted @ 2014-11-28 02:17  Xavier小灰  阅读(146)  评论(0编辑  收藏  举报