LogRitmo navegador / ativofase / 04LR / fase 04 · ativa
voltar à Fase 4/ recursion · bancada 05

Towers of Hanoi

Mova uma torre respeitando uma regra simples e um custo inevitável.

LR / 04Hanoi
pergunta de entrada

Quantos movimentos são necessários para transferir todos os discos?

Para mover n discos, mova n−1 para o auxiliar, mova o maior para o destino e repita o processo.

instrumentação / estado atual
passo01 / 04Separar o maior disco
focon = 3Antes de mover o disco 3, os menores precisam sair do caminho.
complexidadeO(2ⁿ)caso médio
subprobleman − 1observado agora
/ visualização em execução

Separar o maior disco

frame 01
origem / auxiliar / destino
/ chamada abertaO problema foi reduzido a uma pergunta menor.

Passo 1 · Antes de mover o disco 3, os menores precisam sair do caminho.

Passo 1: Antes de mover o disco 3, os menores precisam sair do caminho.

Como ler esta réguaEla não mede o tempo do seu aparelho: compara como o trabalho tende a crescer quando n, a quantidade de elementos na estrutura, aumenta.
operações
quantidade de itens (n)O(1)O(log n)O(n)O(2ⁿ)
O(2ⁿ) · Ramificação exponencial

Cada chamada recursiva pode gerar novas chamadas. Em Fibonacci ingênuo e Towers of Hanoi, o total de trabalho cresce muito mais rápido que n.

Adicionar uma unidade a n pode quase dobrar o trabalho; memoização em Fibonacci evita recomputações e reduz o tempo para O(n).
comparação / duas técnicas

Compare o crescimento lado a lado

Escolha duas técnicas diferentes. As curvas usam a mesma escala visual para explicar como o custo tende a aumentar.

Comparações prontasaplique um par didático
quantidade de itens (n)operações

Use este par para contrastar operações locais de extremidade com uma decomposição recursiva cujo número de movimentos cresce exponencialmente. Stacks & Queues tende a crescer mais devagar do que Towers of Hanoi quando aumentam quantidade de itens (n). Isso descreve tendência assintótica, não mede o tempo do seu aparelho.

/ raciocínio sincronizado

A mesma ideia, três leituras.

01hanoi(n, origem, destino, auxiliar)
02se n == 0: pare
03hanoi(n - 1, origem, auxiliar, destino)
04mova o disco n para destino
05hanoi(n - 1, auxiliar, destino, origem)

O destaque acompanha o passo atual; leia a linha destacada antes de avançar.

/ leitura técnica · necessidade e prova

O disco maior só se move quando todo o resto saiu do caminho.

Torres de Hanoi parece uma sequência de pequenos movimentos, mas sua solução clássica organiza uma prova completa: as regras preservam um invariante, a decomposição alcança o objetivo e a própria necessidade de liberar o maior disco determina o mínimo de passos.

n − 1
→ auxiliar
→disco n
→ destino
→n − 1
→ destino
CONTRATO / TRÊS PINOS

Legal não é, por si só, mínimo.

Um movimento retira apenas o topo de um pino e o deposita em um pino vazio ou sobre um disco maior. A meta exige a pilha inteira, ordenada, no destino. Antes do disco n se mover, os n − 1 menores precisam estar juntos no único pino auxiliar; depois, eles precisam voltar sobre ele. Essa necessidade transforma uma sequência válida em uma sequência obrigatória.

01

O invariante é a regra de segurança.

Cada pino se comporta como uma pilha: somente o topo fica acessível e os tamanhos descem da base ao topo. Se cada chamada começa com pilhas ordenadas, move discos apenas em destinos permitidos e termina, ela preserva a legalidade de toda a configuração.

02

Indução prova que a decomposição chega lá.

Para n = 0, não há movimento. Assumindo que n − 1 discos podem ser transferidos legalmente, o maior fica livre, move uma vez e a mesma hipótese leva a pilha menor para cima dele. A prova cobre corretude, não só um exemplo.

03

O mínimo vem da necessidade.

Qualquer solução precisa liberar o maior disco, movê-lo uma vez e restaurar os menores sobre ele. Portanto, M(n) = 2M(n − 1) + 1, com M(0) = 0; assim, M(n) = 2ⁿ − 1 é simultaneamente o custo da solução e um limite inferior.

MEDIDA CRÍTICA / MOVIMENTOS
2ⁿ − 1mínimo clássico

A pilha cresce linearmente; a tarefa, não.

3 discos7

Uma sequência curta o bastante para observar a decomposição inteira.

10 discos1.023

A recursão ainda é simples de descrever, mas a animação já requer muitos passos.

64 discos2⁶⁴ − 1

Mais de 18 quintilhões de movimentos; trocar a implementação não remove esse limite de saída.

001010011100101O bit menos significativo do contador indica qual disco se move em uma geração iterativa.
ITERATIVO / GRAY CODE

Remover chamadas não remove movimentos.

Uma pilha explícita pode simular a recursão, e uma regra baseada no bit menos significativo do passo identifica o disco a mover. Pela leitura de código de Gray, passos consecutivos mudam uma coordenada. Essas formulações evitam a pilha de chamadas, mas continuam emitindo 2ⁿ − 1 movimentos: quando a sequência inteira é necessária, esse custo é inevitável.

EXTENSÕES / NÃO MISTURAR OS TEOREMAS

Mais pinos mudam a pergunta.

Com quatro pinos, uma estratégia pode estacionar uma parte dos discos, resolver o restante e recuperar a primeira parte. A recorrência Frame–Stewart escolhe um ponto de divisão, mas a argumentação elementar que prova a fórmula 2ⁿ − 1 vale especificamente para os três pinos clássicos.

Também é útil olhar o puzzle como um grafo: cada configuração legal é um vértice e cada movimento legal é uma aresta. A solução mínima é um caminho entre os estados inicial e final; essa leitura conecta o exercício a busca em grafos sem confundir uma regra local com progresso global.

/ escolher a representação pela finalidade

O problema é um laboratório de provas e de estado.

Ensinar recursão
Use a formulação clássica para tornar explícitos caso-base, redução do problema, retorno e indução. A visualização é mais útil quando cada uma das três fases é nomeada.
Gerar passos
Use a versão recursiva ou um gerador iterativo. Para uma animação longa, emitir movimentos sob demanda evita armazenar toda a sequência, embora não reduza o total produzido.
Estudar grafos
Modele configurações legais como estados e movimentos como arestas. Isso ajuda a distinguir um algoritmo que encontra um caminho de uma prova que mostra que esse caminho é mínimo.