Want to create interactive content? It’s easy in Genially!
Tours de Hanoï
Mathuww
Created on November 20, 2022
Explication de l'algorithme du jeu des tours de hanoï (python)
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Essential Dossier
View
Essential Business Proposal
View
Essential One Pager
View
Akihabara Dossier
View
Akihabara Marketing Proposal
View
Akihabara One Pager
View
Vertical Genial One Pager
Transcript
Tours de Hanoï
Algorithme récursif
On admet que vous connaissez les règles du jeu
un petit avertissement pour être sûr
Mais comment réussir ce jeu ?
Certes, vous connaissez les règles mais est-ce que vous connaissez l'astuce pour gagner à chaque coup. Pour atteindre cet objectif, une chose à réfléchir avant de commencer, est-ce que votre nombre de palais est pair ou impair ? Combien de coups faut-il au minimum ?
Pair ou impair ?
Nombre de coups minimum
Début
Jeu à 2 disques sur la tour du milieu
Juste quatre étapes à retenir :-> Début (0 coup) -> Nombre de coups correspondant au jeu de disque précédent -> Déplacement du nouveau disque (+1) -> Nombre de coups correspondant au jeu de disque précédent = (2**n) - 1
0 coups
+3 coups
Jeu à 2 disques sur la tour du droite
Déplacement du gros dique
Rappel
+3 coups (fin = 7 coups)
+1 coups (=> 4 coups)
Par exemple : 4 palets (7 + 1 + 7 = 15), 5 palets (15 + 1 + 15 = 31)
Récursivité ave Python
def hanoi(n, start=1, fin=3, aux=2): if n==1: print("T", start, "-->T", fin) else: hanoi(n-1, start, aux, fin) print("T", start, "-->T", fin) hanoi(n-1, aux, fin, start)
Initialisation de la fonction avec ses paramètres d'entrées
Condition de la récursive pour éviter la boucle infinie
Déplacement du disque le plus petit
Premier rappel récursif : n-1 (échangeant les dernières deux tours)
Déplacement des disques : n-1 (sauf le plus petit)
Deuxième différent rappel récursif : n-1 (échangeant les premières deux tours)
Pour finir, une petite astuce pour gagner à chaque coup
en utilisant le binaire Par exemple, on doit finir par obtenir avec 3 disques :
Plus grand disque
Moyen disque
Plus petit disque
Merci de m'écouter
et je retourne me coucher☺
Déplacement du disque à la tour de droite
Début
0 coups
+1 coups (fin)
Début
Jeu à 1 disque sur la tour du milieu
Déplacement du gros dique
Jeu à 1 disque sur la tour du droite
0 coups
+1 coups
+1 coups (=> 2 coups)
+1 coups (fin = 3 coups)
RETOUR