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

hanoi::solver — floriano@neural-link idle
move 00 / 15
progress
last op
tail -f /hanoi/operations.log 0 ops

    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.