<?php
/* 随机取1公平当大王 */
function king($n,$m){
$monkeys = range(1,$n);// 创建1到n数组
// print_r($monkeys);
$i = 0;// 循环变量
print_r($monkeys);
echo '<br />';
while(count($monkeys) > 1){// 循环条件为猴子数量大于1
if(($i + 1) % $m == 0){// $i为数组下标;$i+1为猴子标号
unset($monkeys[$i]);//余数等于0表示正好第m个,删除,用unset删除保持下标关系
}else{
array_push($monkeys,$monkeys[$i]);// 如果余数不等于0,则把数组下标为$i的放最后,形成一个圆形
unset($monkeys[$i]);
}
$i++;// $i循环+1,不断把猴子删除,或push到数组
print_r($monkeys);
echo '<br />';
}
return current($monkeys);// 猴子数量等于1时输出猴子标号,得出猴王
}
echo king(10,3);
?>
/* 随机取1公平当候王 */
最新推荐文章于 2022-01-18 20:29:39 发布