Heim  >  Artikel  >  Backend-Entwicklung  >  Die Bedeutung und Verwendung von PHP Josephs Frage

Die Bedeutung und Verwendung von PHP Josephs Frage

墨辰丷
墨辰丷Original
2018-06-12 10:39:221386Durchsuche

In diesem Artikel wird hauptsächlich die Methode zur Realisierung von Josephs Problem in PHP vorgestellt. Die Beispiele fassen zwei gängige Techniken zur Realisierung von Josephs Problem zusammen, die einen gewissen Referenzwert haben.

Zusammenfassung der Beispiele in Dieser Artikel beschreibt die Methode zur Implementierung von Josephs Problem in PHP. Die konkrete Analyse lautet wie folgt:

Eine Gruppe von 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 ihn aus dem Kreis, beginnen Sie von hinten zu zählen, zählen Sie bis zum m-ten, werfen Sie ihn raus ... und fahren Sie auf diese Weise fort, bis es nur noch einen gibt Ein Affe ist noch übrig, dieser Affe wird der König genannt. 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.

Analyse:

Der Joseph-Ring ist ein mathematisches Anwendungsproblem: Es ist bekannt, dass n Personen (repräsentiert durch die Zahlen 1, 2, 3...n) um einen 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.

Methode 1:

<?php
function getLeader($n,$m) { 
  $res=0; 
  for($i=2; $i<=$n; $i++) {
    $res=($res+$m)%$i; 
  }
  return $res+1; 
} 
$leader = getLeader(13,34);
echo $leader;
?>

Methode 2:

<?php
//定义函数
function getKing($monkeys , $m , $current = 0){
  $number = count($monkeys);
  $num = 1;
  if(count($monkeys) == 1){
    echo &#39;<font color="red">编号为&#39;.$monkeys[0].&#39;的猴子成为猴王了!</font>&#39;;
    return;
  }else{
    while($num++ < $m){
      $current++ ;
      $current = $current%$number;
    }
    echo "编号为".$monkeys[$current]."的猴子被踢掉了...<br/>";
    array_splice($monkeys , $current , 1);
    getKing($monkeys , $m , $current);
  }
}
$n=13;   //总共猴子数目
$m = 34;  //数到第几只的那只猴子被踢出去
$monkeys = range(1,$n); //将猴子编号放入数组中
getKing($monkeys , $m);   //调用函数
?>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er kann nützlich sein denn das Lernen aller hat geholfen.

Verwandte Empfehlungen:

So konvertieren Sie eine beliebige Basiszahl in PHP in eine Dezimalzahl

PHP vergleicht zwei Arrays mit der Subtraktionsmethode

php assoziative Array-Sortiermethode

Das obige ist der detaillierte Inhalt vonDie Bedeutung und Verwendung von PHP Josephs Frage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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