Un article pour résoudre le problème de l'anneau Joseph (version PHP)

藏色散人
Libérer: 2023-04-10 20:56:02
avant
4075 Les gens l'ont consulté

Cet article vous présentera la version PHP du problème Joseph Ring (le singe choisit le roi). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Problème de Joseph Ring (Le singe choisit le roi) version PHP

Le problème de Josephus est parfois décrit comme le problème du singe choisit le roi, et le titre est le suivant. (L'origine du problème de Joseph sera affichée à la fin)

Un groupe de singes alignés en cercle et numérotés selon 1, 2,...,n.

Ensuite, commencez à compter à partir du 1er, comptez jusqu'au mois, expulsez-le du cercle, commencez à compter par derrière, comptez jusqu'au mois, expulsez-le..., et continuez ainsi, jusqu'à là il ne reste plus qu'un singe, ce singe s'appelle le roi.

Nécessite une programmation pour simuler ce processus, saisir m, n et afficher le numéro du dernier roi.

Utilisez un programme pour simuler ce processus. Le code est le suivant :

function monkeyKing($n, $m)
{
    $arr = range(1, $n);       //构造一个数组
    $i = 1;                         //从第一个开始循环
    while (count($arr) > 1) {       //如果总数大于1
        if ($i % $m != 0) {
            $arr[] = $arr[$i - 1];  //不被踢出则压入数组尾部
        }
        unset($arr[$i - 1]);        //压入数组然后删除
        $i++;                       //继续循环
    }
    return $arr[$i - 1];            //直至最后剩下一个为大王
}
print_r(monkeyKing(5, 3));         //第4只为大王
Copier après la connexion

Voici le processus de simulation pour les singes qui ne sont pas éliminés, la queue du tableau est ajoutée en continu :

 $n = 5
 $m = 3
 $arr = [1, 2, 3, 4, 5]
 $i   $arr
 ---+------------------------
 1    x 2 3 4 5 1
 2    x x 3 4 5 1 2
>3    x x x 4 5 1 2
 4    x x x x 5 1 2 4
 5    x x x x x 1 2 4 5
>6    x x x x x x 2 4 5
 7    x x x x x x x 4 5 2
 8    x x x x x x x x 5 2 4
>9    x x x x x x x x x 2 4
 10   x x x x x x x x x x 4 2
 11   x x x x x x x x x x x 2 4
>12   x x x x x x x x x x x x 4
Copier après la connexion

Origine de la question de Joseph :

Cette question est basée sur Flavio· Elle doit son nom à Josèphe, un historien juif du 1er siècle. Il écrit dans son journal que lui et 40 de ses camarades ont été encerclés par les troupes romaines dans la grotte. Ils ont discuté de l'opportunité de se suicider ou d'être capturés, et ont finalement décidé de se suicider et ont décidé qui tuerait qui en tirant au sort. Josèphe et un autre homme étaient les deux derniers à rester. Josèphe a convaincu l'homme qu'ils se rendraient à l'armée romaine et ne se suicideraient plus. Josèphe attribuait sa survie à la chance ou à la providence, il ne savait laquelle.

Apprentissage recommandé : "Tutoriel vidéo 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!

Étiquettes associées:
php
source:awaimai.com
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!