In the previous article "PHP Random Picking One Algorithm (2)", we introduced in detail the implementation idea of PHP Random Picking One Algorithm, which is the "Fair Selection of Monkey King" interview question solution.
# Now we will combine the code methods in the above articles to show you the process of debugging and running the algorithm through Xdebug.
The question 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 the end. 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.
The code is as follows:
<?php function king($n, $m){ $monkeys = range(1, $n); //创建1到n数组 $i=0; 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到数组 } return current($monkeys); //猴子数量等于1时输出猴子标号,得出猴王 } echo king(10,3);
First we create a breakpoint before the fourth line of code.
#Then open the browser and run this code. The breakpoint successfully obtains focus, as follows.
#Create an array from 1 to n.
Then the while loop determines whether to delete the element.
This cycle leads to the "Monkey King".
Related recommendations: "How to configure and use the xdebug tool in PHPStorm? (Picture, text and video tutorial) 》
So that’s it for the introduction of PHP’s random selection algorithm. You can also test it locally. It's actually very simple. I hope it will be helpful to friends who need it!
The above is the detailed content of PHP random selection algorithm (3). For more information, please follow other related articles on the PHP Chinese website!