Torre di Hanoi
Da Wikipedia, l'enciclopedia libera.
La Torre di Hanoi è un rompicapo matematico composto da tre paletti e un certo numero di dischi di grandezza decrescente, che possono essere infilati in uno qualsiasi dei paletti.
Il gioco inizia con tutti i dischi incolonnati su un paletto in ordine decrescente, in modo da formare un cono. Lo scopo del gioco è portare tutti dischi sull'ultimo paletto, potendo spostare solo un disco alla volta e potendo mettere un disco solo su un altro disco più grande, mai su uno più piccolo.
Indice |
[modifica] Origini
Il gioco fu inventato dal matematico francese Edouard Lucas nel 1883. La leggenda secondo la quale in un tempio Indù alcuni monaci sono costantemente impegnati a spostare su tre colonne di diamante 64 dischi d'oro secondo le regole della Torre di Hanoi (a volte chiamata Torre di Brahma), è stata inventata dalla ditta che per prima ha messo in commercio il rompicapo. La leggenda narra che quando i monaci completeranno il lavoro, il mondo finirà.
[modifica] Soluzione
La proprietà matematica base è che il numero minimo di mosse necessarie per completare il gioco è 2n - 1, dove n è il numero di dischi. Ad esempio avendo 3 dischi, il numero di mosse minime è 7. Di conseguenza, secondo la leggenda, i monaci di Hanoi dovrebbero effettuare almeno 18.446.744.073.709.551.615 mosse prima che il mondo finisca, essendo n = 64. In altre parole, anche supponendo che i monaci facciano una mossa al secondo il mondo finirà tra 5.845.580.504 secoli, un tempo così lungo che quando il sole diverrà una gigante rossa e brucerà la Terra, il gioco non sarà stato completato.
La soluzione generale è data dall'algoritmo seguente.
[modifica] Algoritmo ricorsivo
La soluzione base del gioco della torre di Hanoi si formula in modo ricorsivo.
Siano i paletti etichettati con A, B e C, e i dischi numerati da 1 (il più piccolo) a n (il più grande). L'algoritmo si esprime come segue:
- Sposta i primi n-1 dischi da A a B. (Questo lascia il disco n da solo sul paletto A)
- Sposta il disco n da A a C
- Sposta n-1 dischi da B a C
Per spostare n dischi si richiede di compiere un'operazione elementare (spostamento di un singolo disco) ed una complessa, ovvero lo spostamento di n-1 dischi. Tuttavia anche questa operazione si risolve nello stesso modo, richiedendo come operazione complessa lo spostamento di n-2 dischi. Iterando questo ragionamento si riduce il processo complesso ad uno elementare, ovvero lo spostamento di n-(n-1)=1 disco.
Questo è un algoritmo ricorsivo, di complessità esponenziale.
È interessante notare che il rompicapo è risolvibile per qualsiasi "n", con una dimostrazione per ricorrenza: Supponiamo di avere una torre in A composta da N dischi, e supponiamo che N sia il numero massimo di dischi ammessi per risolvere il gioco. Al termine dello spostamento della torre da A a B, aggiungiamo un ulteriore disco ad A, di grandezza pari a N+1, e ipotizziamo che questo disco sia stato fermo tutto il tempo sotto agli altri. A questo punto, spostiamo semplicemente il disco da A a C, e certamente riusciremo a spostare la torre da B a C, seguendo gli stessi passaggi che si sono resi necessari per spostarla da A a B. Avendo dimostrato che una torre di N dischi è spostabile da una colonna all'altra, è dimostrato che si può spostare anche una torre di N+1 dischi.
[modifica] Bibliografia
- Martin Gardner, Il gioco dell'icosaedro e la torre di Hanoi in Enigmi e giochi matematici, Milano, Rizzoli [1959], 2001. ISBN 88-17-12747-7
[modifica] Voci correlate
- Test della torre di Londra, test di tipo neuropsicologico con similarità al rompicapo
[modifica] Altri progetti
Wikimedia Commons contiene file multimediali su Torre di Hanoi
[modifica] Collegamenti esterni
- (EN) Hanoimania, più di 100 implementazioni del problema della Torre di Hanoi
- (EN) Tower of Hanoi (3-10 pedine, HTML dinamica)
- (IT) Gioco sulle Torri di Hanoi
- (IT) Programma in C Risolutivo Algoritmo Torri di Hanoi


