Écrire du Code pour résoudre l’énigme de la tour de Hanoi (2 / 4 étapes)

Étape 2: Le Code du modèle récursif

Pour résoudre pour N disques, nous devons être en mesure de résoudre pour les disques N-1. C’est là qu’intervient la récursivité. Dans le cadre de ce plan, vous souhaitez écrire du code qui s’applique à un nombre différent de disques pour le puzzle, ainsi que différents postes de départ et de destination.

Le pseudo-code pour cela ressemble à :

J’ai EXPRESSEMENT pour afficher A, B de publier et de participer C ci-dessus, mais le code doit être généralisée, car selon le disque, le poteau de départ et la destination des messages sera différents. Si vous pensez cela, nous allons résoudre le casse-tête 3 fois :

  1. Déplacement des disques N-1 de poste A poster B
  2. Mobiles N-1 disques de poste B de poster C
  3. Déplacer N disques de A poste de poster C

Si vous avez besoin d’un programme généralisé qui vous permettra de lui dire quels sont les postes de départ et de destination. Ce qui est intéressant, c’est que vous n’écrivez pas vraiment beaucoup de code, qui est une grande partie de l’appel de la récursivité. Vous décrivez simplement au programme Comment briser un calcul en petits morceaux, et l’ordinateur fait le reste.

Le pseudo-code détaillé ressemble à :

Voici à quoi ressemble le code JavaScript :

Si vous n’êtes pas un programmeur, laissez-moi vous expliquer que le code ci-dessus est encapsulé dans une « fonction » qui vous permet d’exécuter le même code avec différentes entrées. Vous pouvez maintenant dire le programme combien de disques vous avez dans votre puzzle, ainsi que les postes sont start, destination et points d’arrêt. La fonction est également la base pour être en mesure d’exécuter la récursivité, dans laquelle le même code est fonctionner encore et encore, mais avec différentes entrées (entrées sont également connu sous le nom « paramètres » ou « arguments » dans le jargon de programmation).

Articles Liés

Comment faire pour résoudre les 15 Puzzle

Comment faire pour résoudre les 15 Puzzle

ces instructions fournissent une méthode pour résoudre le casse-tête de 15. Les instructions fournies ici sont destinés à être un processus étape par étape décrivant un algorithme pour résoudre l'énigme 15. Ces instructions ne sont pas censées être u
À l’aide de Codea pour l’iPad

À l’aide de Codea pour l’iPad

Codea par deux vit à gauche est l'un de la meilleure qualité de codage des environnements disponibles pour l'iPad. À l'aide de Codea sur l'iPad, c'est de loin le meilleur codage expérience on puisse espérer avoir sur un iPad. Pour ceux d'entre vous q
Comment faire pour résoudre les puzzles de sudoku (débutant et avancé)

Comment faire pour résoudre les puzzles de sudoku (débutant et avancé)

Dans ce guide que je vais vous expliquer tous les trucs que j'ai trouvé pour réduire les possibilités dans un sudoku puzzle et finalement le résoudre. Chaque étape dans ce instructable va être d'un truc différent donc si vous rencontrez déjà, vous co
Comment faire pour résoudre les problèmes techniques

Comment faire pour résoudre les problèmes techniques

ces Instructables ont été créés pour aider les jeunes aspirants ingénieurs à développer un ensemble de compétences critiques qui les aideront dans leur scolarité et tout au long de leur carrière.  Cet ensemble de compétences deviendra un processus ré
Générateur de code pour des menus personnalisés Android/Arduino activer et désactiver les sorties de l’Arduino. Andriod/Arduino pour les débutants. Absolument aucune programmation requise

Générateur de code pour des menus personnalisés Android/Arduino activer et désactiver les sorties de l’Arduino. Andriod/Arduino pour les débutants. Absolument aucune programmation requise

Mise à jour : un utilisateur invité pour sous-menu soutien. pfodApp a toujours soutenu des sous-menus, mais j'ai ajouté des sous-menus à pfodDesigner. L'instructable Design A Custom Menu System vous montre comment utiliser pfodDesigner pour générer u
Courtes blink code pour Arduino

Courtes blink code pour Arduino

Aujourd'hui, je vais vous montrer comment écrire du code vraiment court pour clignoter défaut de Arduino LED comme a été affecté à bord du code PIN 13. Pourquoi je fais cela ? Car, le code de clignotement est le premier code qui vient commencer à jou
Comment faire pour résoudre les problèmes de physique

Comment faire pour résoudre les problèmes de physique

physique, malgré sa réputation est une science étonnante et avec pas autant d'effort que vous attendez vous pouvez faire des calculs sur des phénomènes très intéressant et pratique. Dans ce instructable je vais vous montrer comment faire et comprendr
Chérie, j’ai rétréci l’Arduino : passant de Arduino à ATtiny et écrire votre code en pure AVR-C

Chérie, j’ai rétréci l’Arduino : passant de Arduino à ATtiny et écrire votre code en pure AVR-C

Arduino est un grand dur - et la plate-forme logicielle, mais avec toutes ses caractéristiques, c'est aussi un peu gonflé et souvent vous avez seulement besoin d'une petite partie de toutes les fonctionnalités. Votre projet nécessite parfois d'avoir
Python codant pour Android Minecraft PE

Python codant pour Android Minecraft PE

La version de Raspberry PI de Minecraft permet vous script en Python, faire des dessins de fractale, dessins, graphiques de la tortue, jeux simples, etc.. La même chose peut être faite sur une version de bureau avec mon Mod de confiture de framboise
La façon la plus simple pour résoudre le cube rubix

La façon la plus simple pour résoudre le cube rubix

je vais vous montrer la façon la plus simple pour résoudre le cube de rubik pour les débutants!!!Étape 1: les noms d'algrothims R = droit vers le hautL = gauche vers le hautU = haut droitRI = droit vers le basLi = gauche vers le basUI = haut gaucheF
Comment faire pour résoudre Cube d’un Rubin ! (Également quelques modèles jolis!)

Comment faire pour résoudre Cube d’un Rubin ! (Également quelques modèles jolis!)

Dans ce instructable nous allons apprendre comment résoudre un cube Rubik en suivant certaines règles et algorithmes. Si vous essayez vraiment dur pendant une heure, peut-être moins vous serez en mesure de résoudre un cube Rubik toujours !Il y a un c
Comment télécharger les codes pour nRF51822 à l’aide de nRF51-DK

Comment télécharger les codes pour nRF51822 à l’aide de nRF51-DK

Aujourd'hui, je vais vous montrer comment faire pour télécharger des codes (alias ; microprogramme) toute balise Bluetooth a nRF51822 puce de kit de développement nRF51-DK via connexion filaire. nRF51-DK peut servir à hardwares de Bluetooth phare pro
Comment faire pour résoudre le cube Rubik Ball Gear

Comment faire pour résoudre le cube Rubik Ball Gear

Je vais vous montrer comment résoudre le Cube de Rubik Ball de l'engin. Même si elle dit qu'il est classé 5 étoiles pour la difficulté, c'est littéralement plus facile que le 2 x 2.Étape 1: bords Choisissez une couleur à commencer par. Dans ce tutori
Comment faire pour résoudre le Cube Rubik 3 x 3

Comment faire pour résoudre le Cube Rubik 3 x 3

Bienvenue sur mon guide pour résoudre le 3 x 3 Rubiks Cube. Si elles peuvent sembler impossibles à tout d'abord, avec un peu de pratique et de patience, n'importe qui peut le résoudre. Le cube que j'utilise est la stickerless Zhanchi de Dayan (trouvé