Maison > Article > programmation quotidienne > Algorithme de sélection aléatoire PHP (3)
Dans l'article précédent "Algorithme PHP Random Picking One (2) ", nous avons présenté en détail l'idée d'implémentation de l'algorithme PHP Random Picking One, qui est la "Sélection équitable de Monkey King" solution aux questions d'entretien.
Ci-dessous, nous combinerons les méthodes de code dans les articles ci-dessus pour vous montrer le processus de débogage et d'exécution de l'algorithme via Xdebug.
Le problème est le suivant :
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'à la fin. il ne reste plus qu'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.
Le code est le suivant :
<?php function king($n, $m){ $monkeys = range(1, $n); //创建1到n数组 $i=0; while (count($monkeys)>1) { //循环条件为猴子数量大于1 if(($i+1)%$m==0) { //$i为数组下标;$i+1为猴子标号 unset($monkeys[$i]); //余数等于0表示正好第m个,删除,用unset删除保持下标关系 } else { array_push($monkeys,$monkeys[$i]); //如果余数不等于0,则把数组下标为$i的放最后,形成一个圆形结构 unset($monkeys[$i]); } $i++;//$i 循环+1,不断把猴子删除,或 push到数组 } return current($monkeys); //猴子数量等于1时输出猴子标号,得出猴王 } echo king(10,3);
Nous créons d'abord un point d'arrêt avant la quatrième ligne de code.
Ensuite, ouvrez le navigateur et exécutez ce code. Le point d'arrêt obtient avec succès le focus, comme indiqué ci-dessous.
Créez un tableau de 1 à n.
Ensuite, la boucle while détermine l'élément à supprimer.
Ce cycle mène au "Roi Singe".
Recommandations associées : "Comment configurer et utiliser l'outil xdebug dans PHPStorm ? (Tutoriel photo + vidéo) 》
Il s'agit donc de l'algorithme de sélection aléatoire de PHP. Vous pouvez également le tester localement. C'est en fait très simple, j'espère que cela sera utile aux amis qui en ont besoin !
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!