Im vorherigen Artikel „PHP Random Picking One-Algorithmus (2) “ haben wir die Implementierungsidee des PHP Random Picking One-Algorithmus, die „Fair Selection of Monkey King“, ausführlich vorgestellt. Lösung für Interviewfragen.
Im Folgenden kombinieren wir die Codemethoden in den obigen Artikeln, um Ihnen den Prozess des Debuggens und Ausführens des Algorithmus über Xdebug zu zeigen.
Das Problem ist wie folgt:
Eine Gruppe Affen stellt sich im Kreis auf und wird nach 1, 2,..., n nummeriert. Dann beginnen Sie mit dem Zählen vom ersten, zählen Sie bis zum m-ten, werfen Sie es aus dem Kreis, beginnen Sie von hinten zu zählen, zählen Sie bis zum m-ten, werfen Sie es raus ... und fahren Sie auf diese Weise bis zum Ende fort Es gibt nur noch einen Affen, den man „König“ nennt. Um diesen Prozess zu simulieren, ist eine Programmierung erforderlich. Geben Sie m und n ein und geben Sie die Nummer des letzten Königs aus.
Der Code lautet wie folgt:
<?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);
Zuerst erstellen wir einen Haltepunkt vor der vierten Codezeile.
Öffnen Sie dann den Browser und führen Sie diesen Code aus. Der Haltepunkt erhält erfolgreich den Fokus, wie unten gezeigt.
Erstellen Sie ein Array von 1 bis n.
Dann bestimmt die while-Schleife das zu löschende Element.
Dieser Zyklus führt zum „Affenkönig“.
Verwandte Empfehlungen: „Wie konfiguriere und verwende ich das xdebug-Tool in PHPStorm? (Bild + Video-Tutorial) 》
Das ist also alles über den Zufallsauswahlalgorithmus von PHP. Sie können es auch vor Ort testen. Es ist eigentlich ganz einfach. Ich hoffe, es wird Freunden helfen, die es brauchen!
Das obige ist der detaillierte Inhalt vonPHP-Zufallsauswahlalgorithmus (3). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!