Les tours de Hanoï
La tour de Hanoï, ou les tours de Hanoï, aussi appelé la Tour de Brahma ou
les tours de Brahma, est un jeu ou puzzle mathématique. Il consiste en trois
tours, et un nombre de disques de différentes tailles qui peuvent glisser
sur n'importe quelle tour. Le puzzle commence avec tous les disques en une
belle pile selon l'ordre croissant de la taille, le plus petit en haut, sur
une tour, formant donc une pyramide. L'objectif du puzzle est de déplacer la
pile entière jusqu'à une autre tour, en respectant les règles suivantes :
- Seul un disque peut être bougé à la fois.
- Chaque mouvement consiste à prendre le disque supérieur de l'une des tours
et à le déposer sur une autre tour, au sommet des autres disques qui peuvent
déjà être présents sur cette tour.
- Aucun disque ne peut être placé au dessus d'un disque plus petit.
Objectif de l'exercice
Écrivez le coeur de la méthode [!java]void [/!]solve([!java]int
[/!]src[!scala]:Int[/!], [!java]int [/!]dst[!scala]:Int[/!], [!java]int
[/!]height[!scala]:Int[/!])
. Cette méthode résoudra de manière
récursibe le problème. Le premier paramètre, nommé src
, est
l'index de la tour initiale, le second paramètre dst
est
l'index de la tour final souhaitée, et le troisième paramètre
height
est la taille de la tour. La clé pour résoudre de puzzle
est de reconnaitre qu'il peut être résolu en cassant le problème en un
ensemble de problèmes de plus petites tailles et de continuer cette
réduction de la taille du problème jusqu'à atteindre une solution. La
procédure suivante démontre cette approche :
- Etiquetons les tours A, B, C ( ces étiquettes peuvent changer à différentes
étapes )
- Soit n le nombre total de disques ( la hauteur de la tour initiale )
- Numérotez les disques de 1 ( le plus petit, le plus en haut ) à n ( le plus
large, le plus en bas )
Pour déplacer n disques du poteau A au poteau C :
- déplacer n-1 disques de A vers B. Cela laisse le disque numéro n seul sur le
poteau A
- déplacer le disque numéro n de A vers C
- deplacer n-1 disques de B vers C afin qu'ils reposent sur le disque numéro n