krimog
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
14 février 2015
49
12 juin 2013 à 12:04
L'algorithme pour résoudre les tours de Hanoï est simple :
Déplacer N pièces de la tour A à la tour C, c'est l'équivalent de :
- Déplacer N-1 pièces de la tour A à la tour B
- Déplacer 1 pièce de la tour A à la tour C
- Déplacer N-1 pièces de la tour B à la tour C
Déplacer 1 pièce, c'est possible. Pour déplacer N-1 pièces, tu rappelles ta méthode de manière récursive (si tu ne sais pas ce que ça veut dire, à toi de faire des recherches là dessus) jusqu'à ce que tu ne tu ne déplaces qu'une seule pièce à la fois.
En gros, si tu as 4 pièces, voici la liste des appels que ça doit faire :
Déplacer (4, A, C)
Déplacer (3, A, B)
Déplacer (2, A, C)
Déplacer (1, A, B)
Déplacer (1, A, C)
Déplacer (1, B, C)
Déplacer (1, A, B)
Déplacer (2, C, B)
Déplacer (1, C, A)
Déplacer (1, C, B)
Déplacer (1, A, B)
Déplacer (1, A, C)
Déplacer (3, B, C)
Déplacer (2, B, A)
Déplacer (1, B, C)
Déplacer (1, B, A)
Déplacer (1, C, A)
Déplacer (1, B, C)
Déplacer (2, A, C)
Déplacer (1, A, B)
Déplacer (1, A, C)
Déplacer (1, B, C)
Les couleurs correspondent à des mêmes niveaux récursifs.
Et au final, tu ne fais des mouvements que quand tu as 1 pièce à déplacer, ce qui fait donc 15 mouvements.
Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -