Está en la página 1de 5

ACTIVIDAD N:

2
FECHA
ENVIO:
13/05/2014
FECHA
ENTREGA:
19/05/2014
TEMA:

RECURSIVIDAD PARA LAS TORRES DE HANI


UNIDAD N1:

Programacin Avanzada

OBJETIVO:
Disear algoritmos ms eficientes utilizando colecciones de
objetos
PROBLEMA:

Investigar sobre la solucin recursiva para las torres de Hani
INDICADOR DE EVALUACION:

CALIFICACIN




Ensayo 2 puntos 1 punto 0,1 puntos
Profundizacin
del tema
Descripcin clara y sustancial
del tema y buena cantidad de
detalles.
Descripcin ambigua del tema a
tratar, algunos detalles que no
clarifican el tema.
Descripcin inexacta del tema a
tratar, sindetalles significativos o
escasos.
Aclaracin sobre
el tema
Tema bien organizado y
claramente presentado as
comode fcil seguimiento.
Tema con informacin bien
focalizada pero no
suficientemente organizado.
Tema impreciso y poco claro, sin
coherencia entre las partes que lo
componen.
Alta calidad del
diseo
Ensayo escrito con tipografa
sencilla y que cumple con los
criterios de diseo planteados,
sin errores de ortografa.
Ensayo simple pero bien
organizado con al menos tres
errores de ortografa y tipografa
difcil de leer.
Ensayo mal planteado que no
cumple con los criterios de diseo
planteados y con ms de tres
errores de ortografa.
Elementos
propios del
ensayo
El ensayo cumple con los cuatro
criterios de diseo (Resumen,
palabras clave, cuerpo del
ensayo y referencias
bibliogrficas)
El ensayo cumple con los cuatro
criterios de diseo pero no con la
extensin solicitada (mnimo 3
pginas) o bien, estos puntos no
han sido correctamente
realizados.
El ensayo no cumple con los
criterios de diseo planteados o
bien no estn claramente
ordenados o definidos ni cumple
con la extensin mnima.
Presentacin del
ensayo
La presentacin/exposicin fue
hecha en tiempo y forma,
ademsse entreg de forma
limpia en elformato pre
establecido (papel odigital).

La presentacin/exposicin
fuehecha en tiempo y forma,
aunquela entrega fue en el
formato preestablecido.
La presentacin/exposicin no
fuehecha en tiempo y forma,
ademsla entrega no se dio de la
formapre establecida por el
docente.

TIPO DE ACTIVIDAD
LUGAR ALCANCE FORMA
Intraclase
Extraclase
Individual
Grupal
Taller
Sntesis, esquemas
Caso de estudio
Investigativa
Vinculacin con la colectividad
Prctica en laboratorio
Prctica en clase
Resolucin de problemas,
ejercicios
Ensayo, artculo
Informe de exposicin


ROLES Y RESPONSABILIDADES DE LOS PARTICIPANTES EN LA TAREA:
NOMBRE ROL DESCRIPCIN
Jorge Castro Investigador - Analista


TORRES DE HANOI

Un ejemplo de solucin recursiva de un problema es el del juego llamado Torres de Hanoi, inventado
por el matemtico francs Edouard Lucas y que se venda como un juego ya a fines del siglo XIX.
Aparentemente, Lucas se inspir en una leyenda oriental que deca que un grupo de monjes deban
mover una pila de sesenta y cuatro discos de oro de un poste a otro. De acuerdo con la leyenda,
cuando terminasen su tarea tanto el templo como el mundo se terminaran tambin. El juego consiste
en pasar una torre o pila de objetos de un lugar a otro, respetando las siguientes reglas:

(a) Slo puede emplearse un lugar auxiliar, (adems del original de partida y el del destino);

(b) Slo puede moverse un objeto por vez;

(c) No puede nunca apilarse un objeto encima de otro ms pequeo.

Generalmente, se representa tal como el juego se vende: los objetos son discos con un agujero en el
medio y tres clavijas montadas cada una sobre una base, que representan las pilas (la de partida u
origen, la de llegada o destino y la auxiliar), como se ve en la Figura 1(a), donde hay tres discos en la
clavija de origen. Nosotros podemos representarlo como tres pilas de nmeros naturales como se ve
en la Figura 1 (b). Notemos que el tamao de los discos est en relacin directa con los nmeros
naturales que los representan en las pilas de la Figura 1


Figura 1.Representacin del juego de las Torres de Hani




























Planteamiento recursivo

Una forma de encontrar la solucin consiste en estudiar las condiciones bajo las cuales puedo
mover el disco ms grande:














Ha de ser el nico que haya en la torre origen
La torre destino esta ha de estar vaca
Todos los discos han de estar en la torre auxiliar




Para poder mover el disco ms grande de los n desde la torre origen a la destino, he de
haber movido previamente los n-1 discos desde la torre origen a la auxiliar.
Una vez movidos los n1 discos que lo obstruyen y movido el ms grande a la torre
destino, hemos de mover los n1 discos que estn en la torre auxiliar a la torre destino,
usando como torre auxiliar la torre origen inicial.


Casos simples
Cundo puedo solucionar el problema directamente? Cuando solamente he de mover
un disco, no he de apartar nada no usar la torre auxiliar: lo muevo directamente.


Escribiendo la solucin en Java

La funcin tendr tres parmetros:

Hanoi(int n, int origen, int auxiliar, int destino)

n: que ser el nmero de discos a mover
origen :nombre de la torre de partida
destino : nombre de la torre de destino
auxiliar : nombre de la torre auxiliar










public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
System.out.println("Numero de discos: ");
n = sc.nextInt();
Hanoi(n,1,2,3); //1:origen 2:auxiliar 3:destino
}


//Mtodo Torres de Hanoi
public static void Hanoi(int n, int origen, int auxiliar, int destino){

if(n==1)
System.out.println("mover disco de " + origen + " a destino " + destino);
else{
Hanoi(n-1, origen, destino, auxiliar);
System.out.println("mover disco de "+ origen + " a destino " + destino);
Hanoi(n-1, auxiliar, origen, destino);
}
}
Por ejemplo, para 3 discos que se quieren mover de la torre 1 a la 3 usando
2 como auxiliar haramos la llamada.
hanoi (3, 1, 2, 3) que escribira:

Mover disco de 1 a destino 3
Mover disco de 1 a destino 2
Mover disco de 3 a destino 2
Mover disco de 1 a destino 3
Mover disco de 2 a destino 1
Mover disco de 2 a destino 3
Mover disco de 1 a destino 3

Si hacemos un grfico de las llamadas que se producen nos queda la siguiente imagen







Bibliografa

Flrez Rueda Roberto - Algoritmos, estructuras de datos y programacin orientada a
objetos - Bogot (2005)
http://books.google.es/books?id=gMcmb-
qYODUC&pg=PA197&dq=torres+de+hanoi&hl=es&sa=X&ei=Eup4U5eRBKPKsQT6zIDAD
Q&ved=0CDEQ6AEwAA#v=onepage&q=torres%20de%20hanoi&f=false

Recursividad. J.M. Gimeno y J.L. Gonzlez

http://ocw.udl.cat/enginyeria-i-arquitectura/programacio-2/continguts-1/2-
recursividad.pdf

HARVEY M. DEITEL; PAUL J. DEITEL, Como Programar en Java Deitel 5ta Edicin
(2003)

http://books.google.com.ec/books?id=tR7k9ga5CjoC&pg=PA241&lpg=PA241&dq=recur
sividad+torres+de+hanoi+deitel&source=bl&ots=w9XAVnTzPH&sig=DLup8K8Qp8fiiupN
aMzk9PUsZOk&hl=es&sa=X&ei=S-14U-
rjF4S_sQSYwoKIBA&ved=0CD8Q6AEwAg#v=onepage&q=recursividad%20torres%20de
%20hanoi%20deitel&f=false

También podría gustarte