Maison > programmation quotidienne > Connaissance PHP > Algorithme de sélection aléatoire PHP (3)

Algorithme de sélection aléatoire PHP (3)

藏色散人
Libérer: 2021-01-11 10:48:14
original
9224 Les gens l'ont consulté

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.

Algorithme de sélection aléatoire PHP (3)

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);
Copier après la connexion

Nous créons d'abord un point d'arrêt avant la quatrième ligne de code.

Algorithme de sélection aléatoire PHP (3)

Ensuite, ouvrez le navigateur et exécutez ce code. Le point d'arrêt obtient avec succès le focus, comme indiqué ci-dessous.

Algorithme de sélection aléatoire PHP (3)

Créez un tableau de 1 à n.

Algorithme de sélection aléatoire PHP (3)

Ensuite, la boucle while détermine l'élément à supprimer.

Algorithme de sélection aléatoire PHP (3)

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal