Heim > Artikel > Backend-Entwicklung > Ausführliche Erklärung zur Implementierung des Joseph-Ring-Problems in PHP
In diesem Artikel wird hauptsächlich die Methode zur Realisierung des Joseph-Ring-Problems in PHP vorgestellt und die relevanten Betriebstechniken von PHP mithilfe von Schleifen und Rekursion zur Realisierung des Joseph-Ring-Problems anhand von Beispielen analysiert
Die Beispiele in diesem Artikel sind eine Methode zur Implementierung des Joseph-Ring-Problems in PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Übersicht
Werfen wir zunächst einen Blick auf das Weitere Häufige Beschreibungen des Joseph-Ring-Problems im Internet: Der Joseph-Ring (Joseph-Problem) ist ein mathematisches Anwendungsproblem: Es ist bekannt, dass n Personen (dargestellt durch die Zahlen 1, 2, 3...n) an einem runden Tisch sitzen. Beginnen Sie mit dem Zählen bei der Person mit der Nummer k, und die Person, die bis m zählt, verlässt die Warteschlange; die nächste Person beginnt mit dem Zählen bei 1, und die Person, die bis m zählt, verlässt die Warteschlange erneut, bis die Runde vorbei ist Tisch Alle Leute kamen heraus. Wenn wir diese Art von Problem lösen, nummerieren wir es normalerweise von 0 bis n-1, und das Endergebnis + 1 ist die Lösung des ursprünglichen Problems.
2. Implementierungscode
1. Schleife
function circle($arr,$idx,$k){ for($i=0;$i<$idx;$i++){ $tmp = array_shift($arr); array_push($arr,$tmp); } $j = 1; while(count($arr) > 0){ $tmp = array_shift($arr); if($j++%$k == 0){ echo $tmp."\n"; }else{ array_push($arr,$tmp); } } } $arr = array(1,2,3,4,5,6,7,8,9,10,11,12); $idx = 3; $k = 4; circle($arr,$idx,$k);
Laufergebnis:
7 11 3 8 1 6 2 10 9 12 5 4
2. Rekursion
function circle($arr,$idx,$k){ $len = count($arr); $i = 1; if($len == 1){ echo $arr[0]."\n"; return ; } else { while($i++ < $k){ $idx++; $idx = $idx%$len; } echo $arr[$idx]."\n"; array_splice($arr,$idx,1); circle($arr,$idx,$k); } } $arr = [1,2,3,4,5,6,7,8,9,10,11,12]; $idx = 3; $k = 4; circle($arr,$idx,$k);
Laufergebnisse:
7 11 3 8 1 6 2 10 9 12 5 4
Leistungsoptimierungstools, die Sie in PHP möglicherweise übersehen: Generatorbezogene Inhalte
Detaillierte Implementierung des automatischen Ladens von Composer im Laravel-Framework
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Implementierung des Joseph-Ring-Problems in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!