Maison  >  Article  >  développement back-end  >  La signification et l'utilisation de php La question de Joseph

La signification et l'utilisation de php La question de Joseph

墨辰丷
墨辰丷original
2018-06-12 10:39:221345parcourir

Cet article présente principalement la méthode de réalisation du problème de Joseph en PHP. Les exemples résument deux techniques courantes pour réaliser le problème de Joseph, qui ont une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

Résumé des exemples dans. cet article La méthode d'implémentation du problème de Joseph en PHP. L'analyse spécifique est la suivante :

Un groupe de singes s'alignent en cercle et sont numérotés selon 1, 2,..., n. Ensuite, commencez à compter à partir du 1er, comptez jusqu'au mème, expulsez-le du cercle, commencez à compter par derrière, comptez jusqu'au mème, expulsez-le..., et continuez ainsi jusqu'à ce qu'il n'y en ait plus. il reste un singe, ce singe s'appelle le roi. Une programmation est nécessaire pour simuler ce processus, saisir m, n et afficher le numéro du dernier roi.

Analyse :

L'Anneau de Joseph est un problème d'application mathématique : on sait que n personnes (représentées par les chiffres 1, 2, 3...n respectivement) sont assises autour d'une table ronde . Commencez à compter à partir de la personne numérotée k, et la personne qui compte jusqu'à m sort de la file d'attente ; la personne suivante commence à compter à partir de 1, et la personne qui compte jusqu'à m sort à nouveau de la file d'attente, répétez ce schéma jusqu'au tour suivant ; table Tout le monde est sorti.

Méthode 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;
?>

Méthode 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);   //调用函数
?>

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère cela peut aider. L’apprentissage de chacun est utile.

Recommandations associées :

Comment convertir n'importe quel nombre de base en décimal en php

php compare deux tableaux Méthode de soustraction

Méthode de tri des tableaux associatifs php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn