Ausführliche Erklärung zur Implementierung des Joseph-Ring-Problems in PHP

jacklove
Freigeben: 2023-04-02 19:12:02
Original
1978 Leute haben es durchsucht

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);
Nach dem Login kopieren

Laufergebnis:

7 11 3 8 1 6 2 10 9 12 5 4
Nach dem Login kopieren
Nach dem Login kopieren

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);
Nach dem Login kopieren

Laufergebnisse:

7 11 3 8 1 6 2 10 9 12 5 4
Nach dem Login kopieren
Nach dem Login kopieren

Artikel, die Sie interessieren könnten:

Eine Erklärung der Methode zur Verwendung von Passport zur Implementierung der Auth-Authentifizierung in Laravel5.5

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!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!