voltar à Fase 4/ recursão · bancada 05
Torres de Hanói
Mova uma torre respeitando uma regra simples e um custo inevitável.
LR / 04Hanói
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
frame 01Separar o maior disco
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.
/ raciocínio sincronizado
A mesma ideia, três leituras.
01
hanoi(n, origem, destino, auxiliar)02
se n == 0: pare03
hanoi(n - 1, origem, auxiliar, destino)04
mova o disco n para destino05
hanoi(n - 1, auxiliar, destino, origem)O destaque acompanha o passo atual; leia a linha destacada antes de avançar.
