Maison > interface Web > js tutoriel > le corps du texte

La fonction récursive JavaScript implémente la 'Tour de Hanoï'

不言
Libérer: 2018-07-05 17:07:30
original
2076 Les gens l'ont consulté

Cet article présente principalement la fonction récursive JavaScript pour implémenter la "Tour de Hanoï", qui a une certaine valeur de référence. Maintenant, je la partage avec vous. Les amis dans le besoin peuvent s'y référer

La "Tour". of Hanoi" est un célèbre jeu de puzzle. La tour comporte trois piliers et un ensemble de disques creux de différents diamètres. Au début, tous les disques du pilier sont empilés du plus petit au plus grand. L'objectif est de déplacer une pile de disques vers la colonne cible en déplaçant un disque vers une autre colonne à la fois. Au cours du processus, les disques plus grands ne sont pas autorisés à être placés sur des disques plus petits.

Interprétez attentivement ce passage. S'il y a 10 disques ou plus, le nombre d'étapes sera certainement choquant, mais le but est de déplacer un tas de disques vers le pilier cible. Si ce qui précède, les 9 disques sont. considéré comme un ensemble, et le 10ème disque est considéré comme un autre ensemble. Déplacez d'abord les 9 disques vers un autre pilier, puis les 8 disques ci-dessus sont considérés comme un ensemble, et le 9ème disque est considéré comme un autre ensemble... Par analogie. , décomposition et mouvement, l'idée de fonctions récursives se reflète.

Complétez le code, manière très simple de l'écrire. Existe-t-il une manière plus simple de l'écrire ?

var hanoi = function {disc, begin, end, helper) {    if (disc > 0) {
        hanoi(disc - 1, begin, helper, end);
        document.writeln('移动圆盘 ' + disc + ' 从 ' + begin + ' 到 ' + helper);
        hanoi(disc - 1, end, begin, helper);
    }
};

hanoi(3, '柱子一', '柱子二', '柱子三');
Copier après la connexion

Sortie lorsque le nombre de disques est de 3 :

Déplacer 1 du pilier un au pilier trois
Déplacer le 2 de Pilier un au pilier deux
Déplacement 1 Du pilier trois au pilier deux
Déplacement 3 Du pilier un au pilier trois
Déplacement 1 Du pilier deux au pilier un
Déplacement 2 Du pilier deux au pilier trois
 Déplacer 1 du pilier un au pilier trois

Les paramètres transmis à la fonction hanoi incluent le numéro de disque en cours de déplacement et les trois piliers qu'elle utilisera. Lorsqu'il appelle senior, il traite le disque au-dessus de celui en cours de traitement. Finalement, il sera appelé avec un numéro de disque qui n'existe pas. Dans de tels cas, cela ne fait rien. Puisque cette fonction ignore les valeurs illégales, il n’y a pas lieu de s’inquiéter de provoquer une boucle infinie.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment utiliser du code JS pur pour déterminer le nombre de caractères chinois dans une chaîne

Utiliser JavaScript pour déterminer le nombre de caractères chinois dans une chaîne Comment obtenir le code-barres

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