domingo, 8 de septiembre de 2013

Practica 3.- Torres de Hanói Algoritmo de Intercambio


 En esta practica veremos sobre el tema de Torres de Hanói que enseguida quedara una breve reseña.

TORRES DE HANÓI

La torre de Hanói, es un juego lógico matemático, que consiste en la apilar los 8 discos por los cuales está conformada en una delas tres estacas del tablero. Este juego es considerado en muchas ocasiones como introducción al área de logaritmos pues el encontrar la manera acerca de cómo tener la misma organización de los discos en otra torre lo convierte en un problema al cual la lógica y la razón le darán solución.
El juego, en su forma más tradicional, consiste en tres varillas verticales. En una de las torres se apila un número indeterminado de discos (elaborados de madera) que determinará la complejidad de la solución, por regla general se consideran ocho discos. Los discos se apilan sobre una varilla en tamaño decreciente. No hay dos discos iguales, y todos ellos están apilados de mayor a menor radio en una de las varillas, quedando las otras dos varillas vacantes. El juego consiste en pasar todos los discos de una torre ocupada a una de las otras torres vacías. Para realizar este objetivo, es necesario seguir tres simples reglas:
1.   Sólo se puede mover un disco cada vez.
2.   Un disco de mayor tamaño no puede descansar sobre uno más pequeño que él mismo.
3.   Sólo puedes desplazar el disco que se encuentre arriba en cada torre.
Existen diversas formas de realizar la solución final, todas ellas siguiendo estrategias diversas.

Practica 3.- Torres de Hanói Algoritmo de Intercambio

                        == Comenzamos con el Diagrama UML ==



 ** Después continuamos con la codificación **


1.- Aquí comienza la clase de Rectángulo:

import javax.swing.JOptionPane;
public class Torres_hanoi 
{                                                          
 private int numdiscos;
 private int numovi;

   
    public int getNumdiscos() {
        return numdiscos;
    }      

    public void setNumdiscos(int numdiscos) {
        this.numdiscos = numdiscos;
    }

    public int getNumovi() {
        return numovi;
    }

    public void setNumovi(int numovi) {
        this.numovi = numovi;
    }
        
    public void captura()
        {
       numdiscos=Integer.parseInt(JOptionPane.showInputDialog("Numero de discos:  "));

        }
    public void intercambio(int numdiscos, int A,int B,int C)
    {
     if (numdiscos==1)
      {
      setNumovi(getNumovi() +1);
      JOptionPane.showMessageDialog(null,"Mover disco del poste A al poste B");
      }
     else
       {
    intercambio(numdiscos - 1, A,C,B);
    setNumovi(getNumovi() +1);
    JOptionPane.showMessageDialog(null,"Mover disco del poste A al poste C");
    intercambio(numdiscos-1, B,A,C);
    JOptionPane.showMessageDialog(null,"Mover disco del poste B al poste C");
  
       }
    }
    public void totalMovimientos()
       {
        JOptionPane.showMessageDialog(null,"El total de movimientos fueron:  "+ numovi);
       }
}


2.- Aquí comienza la clase solución

import javax.swing.JOptionPane;
public class Solucion_hanoi

{
    public static void main (String [] args)
  {
    Torres_hanoi  objeto;

    objeto=new Torres_hanoi  ();

    objeto.captura();
    objeto.intercambio(objeto.getNumdiscos(), 'A', 'B', 'C');
    objeto.totalMovimientos();
  }
}

* Aquí ya comienza a correr el programa 


 * Después introduces número de discos a usar.



* A continuación como se mueven los discos de un poste a otro poste.






* Movimientos totales de un poste a otro poste.



* Y aquí concluye el final del programa.


= = = Conclusión = = =

Llegamos a la conclusión de que el juego de las Torres de Hanói es un juego matemático en el cual podemos ver o demostrar las habilidades que tenemos y al igual esto nos sirve mucho para resolver algún problema ya que con la lógica y la razón llegaran ala solución. 

Publicado por: Dickner Steven Barrios & Yenifer Mina Castillo

No hay comentarios:

Publicar un comentario