Torre de Hanoi:jogando com a Matemática Rufino, Elzimar de O. 18 de maio de 2011 Resumo As idéias principais deste artigo foram escritas em abril de 2006. Nosso objetivo aqui é mostrar como o jogo Torre de Hanoi pode ser utilizado como ferramenta valiosa em algumas situações do Ensino da Matemática, como por exemplo no estudo de exponenciais, funções exponenciais, logarítimos, progressão geométrica, função maior inteiro, indução matemática, etc. 1 Um pouco de história O jogo tem origem em um mito indiano segundo o qual o centro do mundo encontra-se sob a cúpula de um templo situado em Benares, na Índia. Neste centro haveria uma placa de latão onde estariam fixados três pinos de diamente. Ao criar o mundo o deus Brahma teria colocado em um desses pinos sessenta e quatro discos de ouro, apoiados um sobre o outro de diâmetros decrescentes, estando o maior junto à placa e o menor no topo da pilha. Esta seria a Torre do Brahma. Segundo as leis imutáveis criadas por ele, os sacerdotes teriam sido incubidos de transferir a pilha de discos para um dos outros pinos, trabalhando desde então, dia e noite sem sessar. Segundo o mito a vida decorrerá durante a realização de tal tarefa de transferência e, antes que os sacerdotes consigam levar a cabo a missão que receberam, o templo transformar-se-á em pó e o mundo desaparecerá, com um estrondo de trovão. No mundo ocidental o jogo foi inventado, a partir do mito pelo Matemático francês Edouard Lucas (4 de abril de 1842-3 de outubro de 1891). A figura abaixo mostra uma Torre de Hanoi confeccionada em madeira. Professor do Departamento de Matemática da Universidade Federal de Roraima. Licenciado em Matemática-UFRR, Especialista em Matemática-UFRR e Mestre em Matemática-UFAM. 1
Figura 1: Torre de Hanoi 2 O objetivo e as regras O objetivo principal do jogo é transladar a Torre de um pino para um dos outros dois. As regras são simples: deve-se movimentar um disco de cada vez, sendo que um disco qualquer nunca pode sobrepor outro de diâmetro menor. Deve-se fazer a translação com um número mínimo de movimentos. 3 Algumas idéias sugestivas O professor dispondo de várias Torres apresenta o jogo aos seus alunos instigando-os a jogar começando com poucos discos e fazer anotações do número de movimentos em uma tabela. Após jogarem bastante, provavelmente determinarão a tabela abaixo: número de discos número de movimentos 1 1 2 3 3 7 4 15 5 31 Tabela 1: Número de discos e número de movimentos. A partir daí muitas idéias podem surgir dependendo da criatividade e curiosidade dos participantes. Por exemplo, olhando a segunda coluna da tabela acima como uma sequência pode-se perceber certa propriedade ou uma lei de formação. Surgem então as seguintes perguntas: 1- Que característica pode-se perceber na sequência (de cima para baixo) formada pelos elementos da segunda coluna na tabela 1? 2
Uma resposta esperada : cada elemento é o dobro do anterior mais uma unidade. 2- Como podemos representar essa propriedade matematicamente? 3- Que propriedade ou relação existe entre o número de discos e o respectivo número de movimentos? 4- Dada uma quantidade de discos, como garantir que o número de movimentos dado na tabela 1 é o número mínimo de movimentos? Vamos dar atenção agora à pergunta 2. Como expressar matemáticamente a frase:cada elemento da sequência é o dobro do anterior mais uma unidade. Surge a necessidade de se utilizar uma notação matemática para cada termo, ou seja, para o primeiro, segundo, e assim por diante. Depois de verificadas as idéias dos alunos e os prós e contras, o professor pode sugerir a notação utilizada na tabela abaixo. termo notação primeiro a 1 segundo a 2 = 2a 1 + 1 terceiro a 3 = 2a 2 + 1 quarto a 4 = 2a 3 + 1 quinto a 5 = 2a 4 + 1 De um modo geral, dado um número natural n temos a n = 2a n 1 + 1. É claro que esta propriedade está apenas sendo conjecturada e a rigor teria de ser demonstrada. 4 O número mínimo de movimentos Manipulando os dados da primeira tabela, pode-se fazê-los perceber uma função que determina o número mínimo de movimentos ao se jogar com uma Torre com n discos. Vamos enunciar esse resultado e demonstrá-lo formalmente. Porém, antes vamos ver dois lemas. Lema 1-Para qualquer n, o jogo tem solução. Prova: (Indução Matemática) Para n=1, obviamente o jogo tem solução. Suponha que o jogo tenha solução para n = k discos, vamos mostrar que possui solução para n = (k + 1) discos. Em uma Torre com n = (k + 1) discos, a hipótese de indução nos diz que podemos transladar os k primeiros discos para um dos dois pinos livres. Após feito isso, o (k + 1) ésimo 3
disco pode ser então transladado para o pino que ainda está livre. Usando novamente a hipótese de indução podemos transladar os primeiros k discos para cima do (k + 1) ésimo disco e então o jogo estará solucionado. Lema 2-Acrescentando um disco ao jogo com uma Torre de n discos o número de movimentos duplica mais uma unidade. Prova: É uma consequência do procedimento descrito na prova do Lema 1. Teorema- O número mínimo de movimentos ao se jogar com uma Torre de n discos é dada pela função f : N N tal que f(n) = 2 n 1 Prova: Seja f : N N a função que determina a solução mínima para um jogo com n discos garantida pelos Lemas 1 e 2. Pelo Lema 2, devemos ter f(n + 1) = 2f(n) + 1 (1) ou ainda f(n) = 2f(n 1) + 1 (2) Na equação (2) substituindo-se, n por n 1, n 2, n 3,..., 1, obtemos f(n 1) = 2f(n 2) + 1, f(n 2) = 2f(n 3) + 1,,..., f(1) = 1. Consequentemente, por sucessivas substituições (recorrência), resulta que f(n) = 2[2f(n 2) + 1] + 1 = 2 2 f(n 2) + 1 + 2 = 2 2 [2f(n 3) + 1] + 1 + 2 = 2 3 f(n 3) + 1 + 2 + 2 2. = 2 n 1 f(1) + 1 + 2 + 2 2 +... + 2 n 2 = 2 n 1 + 1 2n 1 1 2 1 = 2 n 1 1. 4
Note que utilizamos a fórmula S n = a 1q n 1 q 1 da soma dos n termos de uma Progressão Geométrica. Vamos obter a expressão f(n) = 2 n 1 do número mínimo de movimentos utiliando um outro olhar. Começaremos com uma Proposição- O número mínimo de movimentos realizados pelo disco menor d 1 em um jogo com n discos é dado pela expressão g n (1) = 2 n 1. (3) Prova: (Indução matemática) Para n = 1 a proposição é válida visto que, g n (1) = 1 = 2 1 1. Suponhamos que a proposição seja válida para n = k, e vamos mostrar que continua válida para n = k + 1. Devemos mostrar então a seguinte implicação: g k (1) = 2 k 1 g k+1 (1) = 2 (k+1) 1 = 2 k. Veja que podemos transferir a Torre com k + 1 discos em três etapas básicas: Etapa 1- Transferimos a Torre com k discos. Etapa 2- Transferimos a o disco d k+1 para o pino livre. Etapa 3- Transferimos a Torre com k discos para onde está o disco d k+1. Assim, pela hipótese de indução, na etapa 1, o número mínimo de movimentos do disco d 1 é g k (1) = 2 k 1. Usando novamente a hipótese de indução,o disco d 1 se movimentará novamente na etapa 3, no mínimo, 2 k 1 vezes. Portanto, ao transferirmos a Torre com k + 1 discos teremos movimentado o disco d 1 não menos que 2 2 k 1 vezes, ou seja, g k+1 = 2 2 k 1 = 2 k como queríamos mostrar. Corolário- O número mínimo de movimentos realizados pelo disco d i em uma Torre com n discos é dado pela fórmula g n (i) = 2 n i. Prova- Observe que em um jogo com n discos, ao se transferir os i 1 primeiros discos não se movimenta o disco d i. Só apartir daí o disco d i irá se movimentar e imediatamente após cada um de seus movimentos os i 1 primeiros discos irão sobrepô-lo (consequência da regra do jogo). Sendo assim, para efeito de contagem, o disco d i pode ser considerado o disco d 1 em uma Torre com n (i 1) movimentos. Então devemos ter g n (i) = g n (i 1) (1) = 2 n (i 1) 1 = 2 i 1. 5
Por exemplo, jogando com uma Torre com 7 discos, a quantidade mínima de movimentos realizados pelo d 3 será O interessante é que g 7 (3) = 2 7 3 = 2 4 = 16. (g n (n), g n (n 1),..., g n (2), g n (1)) é uma progressão geométrica de razão q = 2. Isso significa que um disco de certo diâmetro movimenta-se o dobro de vezes que um disco de diâmetro imediatamente maior. De acordo com o que vimos acima podemos obter a expresão f(n) que determina o número mínimo de movimentos em um jogo com n discos somando-se o número mínimo de movimentos de cada disco.então n i=1 g n (i) = 1 (2n 1) 2 1 = 2 n 1 = f(n). Corolário( do Corolário anterior)-acrescentando um disco jogo, a quantidade mínima de movimentos do disco d i duplica. Prova: g n+1 (i) = 2 n+1 i = 2 2 n i = 2g n (i). 5 Explorando o tempo Uma idéia interessante é fazer uma estimativa do tempo gasto para o término do jogo. Suponha que um jogador gaste um segundo para cada movimento. O tempo gasto obviamente será f(n) segundos. Na mesma situação acima suponha que um jogador dispunha de 50 minutos. Ele poderá transferir uma Torre com no máximo quantos discos? Se os alunos observarem que 50 minutos equivalem a 3000 segundos, tentarão (creio eu!) encontrar o maior valor de n tal que 2 n 1 = 3000 ou 2 n 1 esteja o mai próximo pssível de 3000. Verificarão, por exaustão, que n = 11 e o tempo gasto será 2047 segundos. Para uso posterior vamos ver a definição da função maior inteiro. Definição- O maior inteiro de um número real x, denotado por x, é o maior inteiro que é menor ou igual a x. Exemplos: 11, 56 = 11, 11, 56 = 12. A título de curiosidade apresentamos um gráfico desta função.veja a figura 2. 6
Figura 2: Gráfico da função maior inteiro com x [ 3, 3] O seguinte resultado nos dá uma estimativa do número de discos que se pode movimentar dispondo-se de um um tempo pré-determinado. Teorema- Suponha que um jogador demore um segundo para movimentar cada disco e que este dispõe de x segundos para jogar. Então, ele poderá movimentar no máximo uma Torre com n = log (x+1) 2 discos. Prova: Como o número mínimo de movimentos é f(n) = 2 n 1 e leva-se um segundo para movimentar cada disco, procuramos um n tal que 2 n 1 = x, ou esteja o mais próximo possível de x pela esquerda. Seja r R tal que 2 r = x + 1, ou seja, r = log (x+1) 2. Basta tomar n = r. Os alunos logo perceberão que a tarefa de jogar com muitos discos é ilusória. Jogando com 12 discos nas condições do teorema, o tempo gasto seria mais de uma hora e imaginem que para um jogo com 64 discos seriam necessários 184447440737095511615 segundos, o que equivale a um tempinho de cerca de 6 bilhões de séculos. Como se vê, acreditando ou não no mito, ainda terímos a existência de nosso mundinho por muito tempo. 6 Idéias para vencer o jogo Aqui usaremos a notação (i, j) para representar a transferência do disco d i para o pino j e T n para uma Torre com n discos. Podemos considerar os pinos 1, 2 e 3 da esquerda para a direita. Abaixo temos a sequência de jogadas para um jogo com três discos, onde a Torre é transferida para o pino 2. (1, 2) (2, 3) (1, 3) (3, 2) (1, 1) (2, 2) (1, 2). 7
Note que para transferir a Torre com 3 discos para o pino j devemos começar movimentando o disco d 1 para o pino j. Considere agora uma Torre com n discos. Ao transferir T 3 estará liberado um pino para a transferência de d 4. Transfira d 4 e translade T 3 para onde está d 4, resultando aí T 4. Estará liberado um pino para a transferência de d 5. Transfira d 5 e transfira T 4 para onde está d 5 observando o processo anterior. Continuando, sempre estará liberado um pino para a transferência de d i. Transfira d i e em seguida T i 1 para onde está d i. O jogo estará terminado quando i = n. Para realizar o procedimento descrito anteriormente é necessário estar atento para a paridade de i: Se i for par e deseja-se transferir T i para o pino j, o procedimento inicial deverá ser (1, k) onde k j. Se i for ímpar, o procedimento inicial deverá ser (1, j). Para considerações mais rigorosas a respeito de um algorítimo vencedor sugerimos ao leitor consultar [1]. Com um pouco de esforço muitas outras situações matemáticas podem ser exploradas com o auxílio do jogo Torre de Hanoi. Referências [1] Silva,Gentil Lopes. Novas Sequências Aritméticas e Geométricas.THESAURUS-DF, 2000. [2] MACHADO, Nilson José. Matemática e Educação: Alegorias e Temas Afins. Cortez, São Paulo,2001. [3] HEFEZ, Abramo. Elementos de Aritmática. Sociedade Brasileira de Matemática, Rio de Janeiro,2005. 8