Nov 8 2010

Torre de Hanói

Category: C#Suzuki @ 16:42

A Torre de Hanói é um quebra-cabeça que consiste em uma base contendo três pinos, em um dos quais são dispostos alguns discos uns sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O problema consiste em passar todos os discos de um pino para outro qualquer, usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique em cima de outro menor em nenhuma situação. O número de discos pode variar sendo que o mais simples contém apenas três.

A Torre de Hanói tem sido tradicionalmente considerada como um procedimento para avaliação da capacidade de memória de trabalho, e principalmente de planejamento e solução de problemas.
A Torre de Hanói consiste em passar todos os discos de uma extremidade a outra sem que um disco maior fique em cima de um menor.

Fonte: http://pt.wikipedia.org/wiki/Torre_de_Han%C3%B3i

Para solucionar este problema vou utilizar a linguagem C# (Forms), utilizando o Visual Studio 2010 com o framework 4.0.
A função Movimento, é responsavel por contar a quantidades de movimentos e para informar (na forma de string) os passos para a solução:

  1. private void Movimento(int a, int b)   
  2. {   
  3.     sbMovimentos.AppendLine(a + " => " + b);   
  4.     count++;   
  5. }  

Em seguida utilizaremos uma função recursiva para a solução:

  1. private void Hanoi(int n, int torreA, int torreB, int torreAuxiliar)   
  2. {   
  3.     if (n < 2)   
  4.         Movimento(torreA, torreB);   
  5.     else  
  6.     {   
  7.         Hanoi(n - 1, torreA, torreAuxiliar, torreB);   
  8.         Movimento(torreA, torreB);   
  9.         Hanoi(n - 1, torreAuxiliar, torreB, torreA);   
  10.     }   
  11.     return;   
  12. }  

Abaixo segue a imagem do programa, onde é solicitado o número de discos e em seguida o programa mostra o script para execução e solução do problema.

 

 

Caso deseje obter a solução segue. ->  TorreHanoi.rar (26,62 kb)

Fico por aqui. Até a próxima.
Sayonara.

 

Share or Bookmark this post…

Tags: , , , , , , , , , , , , , , , , ,

Kommentare

1.
Coimbra Coimbra Brazil says:

Aeee mais um parceiro!!!
Parabéns pelo blog!

2.
pingback topsy.com says:

Pingback from topsy.com

Twitter Trackbacks for
        
        Ninja Code - Torre de Hanói
        [ninjacode.com.br]
        on Topsy.com

3.
Suzuki Suzuki Brazil says:

Muito obrigado.

4.
trackback DotNetKicks.com says:

Tower of Hanoi

You've been kicked (a good thing) - Trackback from DotNetKicks.com

5.
pingback thiagosatoshisuzuki.wordpress.com says:

Pingback from thiagosatoshisuzuki.wordpress.com

Torre de Hanói « Thiago Satoshi Suzuki

6.
Luciana Luciana Brazil says:

Obrigada, muito bom teu blog....

Voeg kommentaar By


(Sal you Gravatar ikone vertoon)

  Country flag

biuquote
  • Opmerkings
  • Voorskou
Loading