Home > Article > Backend Development > The meaning and usage of php Joseph's question
This article mainly introduces the method of realizing Joseph's problem in PHP. The example summarizes two common techniques for realizing Joseph's problem, which has certain reference value. Friends in need can refer to it
Summary of examples in this article The method of implementing Joseph's problem in PHP. The specific analysis is as follows:
A group of monkeys line up in a circle and are numbered according to 1, 2,...,n. Then start counting from the 1st one, count to the mth one, kick it out of the circle, start counting from behind it, count to the mth one, kick it out..., and continue in this way. Until there is only one monkey left, that monkey is called the king. Programming is required to simulate this process, input m, n, and output the number of the last king.
Analysis:
The Joseph Ring is a mathematical application problem: it is known that n people (represented by numbers 1, 2, 3...n respectively) are sitting around a round table. Start counting from the person numbered k, and the person who counts to m comes out of the queue; the next person starts counting from 1, and the person who counts to m comes out of the queue again; repeat this pattern until around the round table All the people came out.
Method one:
<?php function getLeader($n,$m) { $res=0; for($i=2; $i<=$n; $i++) { $res=($res+$m)%$i; } return $res+1; } $leader = getLeader(13,34); echo $leader; ?>
Method two:
<?php //定义函数 function getKing($monkeys , $m , $current = 0){ $number = count($monkeys); $num = 1; if(count($monkeys) == 1){ echo '<font color="red">编号为'.$monkeys[0].'的猴子成为猴王了!</font>'; return; }else{ while($num++ < $m){ $current++ ; $current = $current%$number; } echo "编号为".$monkeys[$current]."的猴子被踢掉了...<br/>"; array_splice($monkeys , $current , 1); getKing($monkeys , $m , $current); } } $n=13; //总共猴子数目 $m = 34; //数到第几只的那只猴子被踢出去 $monkeys = range(1,$n); //将猴子编号放入数组中 getKing($monkeys , $m); //调用函数 ?>
Summary: The above is the entire content of this article, I hope it can be helpful to everyone’s study helped.
Related recommendations:
php method to convert any base number into decimal number
php compares two arrays Subtraction method
php associative array sorting method
The above is the detailed content of The meaning and usage of php Joseph's question. For more information, please follow other related articles on the PHP Chinese website!