Heim > Artikel > Backend-Entwicklung > Ein Artikel zur Lösung des Joseph-Ring-Problems (PHP-Version)
In diesem Artikel wird Ihnen die PHP-Version des Joseph-Ring-Problems (Affe wählt den König) vorgestellt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Joseph-Ring-Problem (Affe wählt den König) PHP-Version
Das Josephus-Problem wird manchmal als Problem beschrieben, bei dem der Affe den König wählt, und der Titel lautet wie folgt. (Der Ursprung von Josephs Problem wird am Ende veröffentlicht)
Eine Gruppe Affen stellte sich im Kreis auf und wurde 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 fort, bis dahin Ist nur noch ein Affe übrig, wird dieser Affe der König genannt.
Erfordert Programmierung, um diesen Prozess zu simulieren, m, n einzugeben und die Nummer des letzten Königs auszugeben.
Verwenden Sie ein Programm, um diesen Prozess zu simulieren:
function monkeyKing($n, $m) { $arr = range(1, $n); //构造一个数组 $i = 1; //从第一个开始循环 while (count($arr) > 1) { //如果总数大于1 if ($i % $m != 0) { $arr[] = $arr[$i - 1]; //不被踢出则压入数组尾部 } unset($arr[$i - 1]); //压入数组然后删除 $i++; //继续循环 } return $arr[$i - 1]; //直至最后剩下一个为大王 } print_r(monkeyKing(5, 3)); //第4只为大王
Das Folgende ist der Simulationsprozess, der das Ende des Arrays kontinuierlich hinzufügt:
$n = 5 $m = 3 $arr = [1, 2, 3, 4, 5] $i $arr ---+------------------------ 1 x 2 3 4 5 1 2 x x 3 4 5 1 2 >3 x x x 4 5 1 2 4 x x x x 5 1 2 4 5 x x x x x 1 2 4 5 >6 x x x x x x 2 4 5 7 x x x x x x x 4 5 2 8 x x x x x x x x 5 2 4 >9 x x x x x x x x x 2 4 10 x x x x x x x x x x 4 2 11 x x x x x x x x x x x 2 4 >12 x x x x x x x x x x x x 4
Der Ursprung von Josephs Frage:
Diese Frage basiert auf Flavio· Sie wurde nach Josephus benannt, einem jüdischen Historiker aus dem 1. Jahrhundert. Er schrieb in sein Tagebuch, dass er und 40 seiner Kameraden in der Höhle von römischen Truppen umzingelt waren. Sie diskutierten darüber, ob sie Selbstmord begehen oder gefangen genommen werden sollten, und beschlossen schließlich, Selbstmord zu begehen, und entschieden durch das Los, wer wen töten würde. Josephus und ein weiterer Mann waren die letzten beiden, die noch übrig waren. Josephus überzeugte den Mann, dass sie sich der römischen Armee ergeben und nicht noch einmal Selbstmord begehen würden. Josephus führte sein Überleben auf Glück oder Vorsehung zurück, er wusste nicht, was.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonEin Artikel zur Lösung des Joseph-Ring-Problems (PHP-Version). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!