tool · interactive solver · algoritmo classico · ricorsione visualizzata
Tower of Hanoi
Visualizzatore interattivo della Torre di Hanoi. Scegli il numero N di dischi, premi play e osserva l'algoritmo ricorsivo spostarli uno per volta. Sotto, ogni operazione viene loggata. La soluzione ottimale richiede 2^n − 1 mosse.
moves(n) = 2n − 1
move
00
/
15
progress
last op
—
L'algoritmo, in tre righe
La soluzione classica della Torre di Hanoi è ricorsiva: per spostare n dischi da A a C usando B come supporto, si sposta prima il sottoinsieme di n−1 dischi su B, poi il disco più grande su C, infine il sottoinsieme da B a C.
function hanoi(n, from, via, to):
if n == 0: return
hanoi(n - 1, from, to, via) // 1. move top n-1 disks from FROM to VIA
move disk n: from → to // 2. move the largest free disk to TO
hanoi(n - 1, via, from, to) // 3. move n-1 disks from VIA to TO
Il numero minimo di mosse cresce esponenzialmente. Per n = 10 servono 1023 operazioni. Per n = 20 oltre un milione.