SlideShare una empresa de Scribd logo
1 de 9
REPÚBLICA BOLIVARIANA DE VENEZUELA
  INSTITUTO UNIVERSITARIO POLITÉCNICO
            “SANTIAGO MARIÑO”
           EXTENSIÓN MATURÍN




TORRE DE HANOI

 Trabajo de Programación No Numérica II



                                   Autor(es): Felizola Vicenzo

                           Asesor(a): Ing. María Aguilera

          Maturín, Junio de 2012
La Torre de Hanoi, también conocido como el brahmanismo o el rompecabezas de la
torre de fin del mundo, fue inventado y vendido como un juguete, en 1883, por el
matemático francés Édouard Lucas.

Según él, el juego que fue muy popular en China y Japón llegó de Vietnam. El
matemático se inspiró en una leyenda hindú, que habla de un templo en Varanasi,
ciudad sagrada de la India, donde había una torre sagrada del brahmanismo, cuya
función era la de mejorar la disciplina mental de los jóvenes monjes. Según la
leyenda, el gran templo de Benarés, bajo la cúpula que marca el centro del mundo,
hay una placa de bronce en la que se fijan tres varillas de diamante.
En una de estas barras, el dios Brahma en el momento de la creación del mundo, puso
64 discos de oro puro, por lo que el más grande es difícil de mantener en la placa de
bronce y el otro se redujo al llegar a la cima.



El premio fue entregado a los monjes para mover la torre formada por discos de
una barra a otra, utilizando el tercero como asistente con las restricciones de mover
un disco a la vez y nunca colocar un disco más grande sobre uno de menor tamaño
El juego de las torres de Hanoi, o torres de diamante, es un juego oriental muy
 antiguo       que       hoy     se      conoce       en       todo       el     mundo.
 El juego matemático de las Torres de Hanoi consiste en un dispositivo que consta de
 tres varillas verticales A, B y C y un número variable de discos. Los n discos son
 todos de diferente tamaño y, en la posición de partida del juego, todos los discos están
 colocados en la varilla A ordenados de mayor a menor tamaño, esto es, el mayor en el
 lugar más bajo y el menor arriba.




Del número de discos depende la complejidad de la solución. El juego consiste en lo
siguiente: Comenzando en la posición de partida. Trasladar todos los discos a la varilla B,
pero colocados también de mayor a menor, en el mismo orden en el que estaban
colocados en la varilla A. Para el traslado de discos podemos utilizar la varilla C, pero se
debe cumplir siempre la condición de que sólo se puede mover un disco cada vez y que
en ningún caso y en ningún paso se podrá colocar un disco mayor sobre otro de menor
radio que él.
El problema de las Torres de Hanoi es un problema utilizado frecuentemente como
ejemplo de resolución de algoritmos.
Se puede imaginar que se tienen 3 postes llamados A, B y C.
En el poste A se tienen n discos de diferente diámetro, acomodados en orden creciente
de diámetro desde lo más alto hasta lo más bajo.
Solamente se puede mover un disco a la vez desde un poste hasta otro y no esta
permitido poner un disco más grande sobre otro más pequeño. La tarea consiste en
mover todos los discos desde el poste A hasta el poste C.
Ejemplo N 1:
Se debe Escribir una función que reciba como parámetro n y que imprima en pantalla
todos los pasos a seguir para mover los discos del poste A al poste C.
Solución Pensando primero en el caso mas pequeño y trivial si n = 1, se tendría un solo
disco y solo habría que moverlo de la torre A a la C.
Ahora, suponiendo que para algún n ya se sabe cómo mover n − 1 discos de una torre a
cualquier otra ¿qué se debe hacer?
Luego de hacer esta pregunta es fácil llegar a la conclusión de que primero hay que
mover los primeros n − 1 discos a la torre B, luego el disco n a la torre C, y
posteriormente mover los n − 1 discos de la torre B a la torre C.
Se puede estar seguro que lo anterior funciona ya que los primeros n − 1 discos de la
torre siempre serán mas pequeños que el disco n, por lo cual se podrían colocar
libremente sobre el disco n si así lo requirieren.
Por inducción entonces, el procedimiento anterior funciona.
Así que el algoritmo de Divide y Vencerás queda de la siguiente manera:
Sea X la torre original, Y la torre a la cual se quieren mover los discos, y Z la otra
torre.
• Para n > 1, hay que mover n − 1 discos de la torre x a la z, luego mover un disco de la
  torre x a la Y y finalmente mover n − 1 discos de la torre Z a la Y.
• Para n = 1, hay que mover el disco de la torre X a la Y ignorando la torre Z.

Se puede notar que aquí los pasos de Divide y Vencerás se resumieron en uno sólo, pero
si están presentes ambos.
El siguiente código muestra una implementación del algoritmo anterior, y utiliza como
parámetros los nombres de las 3 torres, utilizando parámetros predeterminados como A,
B y C.
Código: Torres de Hanoi
(1) int hanoi(int n, char x='A', char y='C', char z='B'){
(2) if(n==1){
(3) printf("Mueve de %c a %c.n", x, y);
(4) }else{
(5) hanoi(n-1, x, z, y);
(6) printf("Mueve de %c a %c.n", x, y);
(7) hanoi(n-1, z, y, x);
(8) }
(9) }

Ejemplo N 2: ¿Cuántas líneas imprime Hanoi (n) (asumiendo que esta función está
implementada como se muestra en el código anterior)?


Solución Sea H(n) el número de líneas que imprime Hanoi (n).
Es obvio que H (1) = 1 puesto que Hanoi (1) solamente imprime una línea.
Se puede Notar que cada que se llama a Hanoi (n) se está llamando dos veces a Hanoi
(n−1) una vez en la línea 5 y otra en la línea 7. Además, en la línea 6 imprime un
movimiento.
Por lo tanto se obtiene la siguiente función recursiva:
                                           H(1) = 1
                                    H(n) = H(n − 1) * 2 + 1
Ahora se pueden hacer unas cuantas observaciones para simplificar aún más esta
función recursiva:
H (1) = 1 = 1
H (2) = 2 + 1 = 3
H (3) = 4 + 2 + 1 = 7
H (4) = 8 + 4 + 2 + 1 = 15
H (5) = 16 + 8 + 4 + 2 + 1 = 31
H (6) = 32 + 16 + 8 + 4 + 2 + 1 = 63

Por inducción se puede observar que como con H (1) si se cumple y
                (2n-1 + 2n-2+ 2n-3 +... + 20) 2 + 1 = 2n + 2n-1 + 2n-2 +... + 20

Solución Sea H(n) el número de líneas que imprime Hanoi (n).
Es obvio que H (1) = 1 puesto que Hanoi (1) solamente imprime una línea.
Nótese que cada que se llama a Hanoi (n) se está llamando dos veces a Hanoi (n−1) una
vez en la línea 5 y otra en la línea 7. Además, en la línea 6 imprime un movimiento.
Por lo tanto obtenemos la siguiente función recursiva:
                                            H(1) = 1
                                     H(n) = H(n − 1) * 2 + 1
Ahora se pueden hacer unas cuantas observaciones para simplificar aún más esta
función recursiva:
H (1) = 1 = 1
H (2) = 2 + 1 = 3
H (3) = 4 + 2 + 1 = 7
H (4) = 8 + 4 + 2 + 1 = 15
H (5) = 16 + 8 + 4 + 2 + 1 = 31
H (6) = 32 + 16 + 8 + 4 + 2 + 1 = 63

Por inducción se puede observar que como con H (1) si se cumple y
                (2n-1 + 2n-2+ 2n-3 +... + 20) 2 + 1 = 2n + 2n-1 + 2n-2 +... + 20

Entonces para cualquier número n la proposición se debe de cumplir.
                                       H(n) = 2n - 1
De nuevo por inducción
                                      H (0) = 20 − 1
Y se puede suponer que para alguna n, H(n) = 2n − 1
                         (2n − 1)(n) + 1 = 2n+1 − 2 + 1 = 2n+1 − 1

Por lo tanto, se concluye que la respuesta de este problema es sin lugar a dudas 2n − 1

Más contenido relacionado

Similar a Torre de hanoi

Las torres de hanoi jose valdivia
Las torres de hanoi jose valdiviaLas torres de hanoi jose valdivia
Las torres de hanoi jose valdiviajosevx
 
Torre de hanoi
Torre de hanoiTorre de hanoi
Torre de hanoigleismergl
 
Las torres-de-hanoi-josevaldivia
Las torres-de-hanoi-josevaldiviaLas torres-de-hanoi-josevaldivia
Las torres-de-hanoi-josevaldiviajosevx
 
Torre hanoi miguelangel rivera
Torre hanoi miguelangel riveraTorre hanoi miguelangel rivera
Torre hanoi miguelangel riveraMiguelangelrivera
 
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Spimy
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoidiegodagf
 
Presentación torres de hanoi
Presentación torres de hanoiPresentación torres de hanoi
Presentación torres de hanoijorgecordova1685
 
Las Torres de Hanoi
Las Torres de HanoiLas Torres de Hanoi
Las Torres de HanoiLuis Reyes
 
Torredehanoi
TorredehanoiTorredehanoi
TorredehanoiMemo Gzz
 
Torres de hanoi prog. no numerica 2 / Cesar Diaz
Torres de hanoi   prog. no numerica 2 / Cesar DiazTorres de hanoi   prog. no numerica 2 / Cesar Diaz
Torres de hanoi prog. no numerica 2 / Cesar Diazcesarsistem2012
 
Vol de un solid de revoluc parte 1 ucv (2021)
Vol  de un solid de revoluc parte 1   ucv (2021)Vol  de un solid de revoluc parte 1   ucv (2021)
Vol de un solid de revoluc parte 1 ucv (2021)Elsa Guédez
 
Las torres de hanói
Las torres de hanóiLas torres de hanói
Las torres de hanóialeb11
 
Diapositiva torre hanoi german carluccio
Diapositiva torre hanoi german carluccioDiapositiva torre hanoi german carluccio
Diapositiva torre hanoi german carluccioGerman A Carluccio M
 
Torres de hanói
Torres de hanóiTorres de hanói
Torres de hanóiDavixe
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoiSMCangry
 

Similar a Torre de hanoi (20)

Las torres de hanoi jose valdivia
Las torres de hanoi jose valdiviaLas torres de hanoi jose valdivia
Las torres de hanoi jose valdivia
 
Torre de hanoi
Torre de hanoiTorre de hanoi
Torre de hanoi
 
Las torres-de-hanoi-josevaldivia
Las torres-de-hanoi-josevaldiviaLas torres-de-hanoi-josevaldivia
Las torres-de-hanoi-josevaldivia
 
Torre hanoi miguelangel rivera
Torre hanoi miguelangel riveraTorre hanoi miguelangel rivera
Torre hanoi miguelangel rivera
 
Torres de hanói
Torres de hanóiTorres de hanói
Torres de hanói
 
Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)Mpinning Gyalg13(Recurr)
Mpinning Gyalg13(Recurr)
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoi
 
Presentación torres de hanoi
Presentación torres de hanoiPresentación torres de hanoi
Presentación torres de hanoi
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoi
 
Torrres de hanói
Torrres de hanóiTorrres de hanói
Torrres de hanói
 
Las Torres de Hanoi
Las Torres de HanoiLas Torres de Hanoi
Las Torres de Hanoi
 
Torredehanoi
TorredehanoiTorredehanoi
Torredehanoi
 
Torres de hanoi prog. no numerica 2 / Cesar Diaz
Torres de hanoi   prog. no numerica 2 / Cesar DiazTorres de hanoi   prog. no numerica 2 / Cesar Diaz
Torres de hanoi prog. no numerica 2 / Cesar Diaz
 
Vol de un solid de revoluc parte 1 ucv (2021)
Vol  de un solid de revoluc parte 1   ucv (2021)Vol  de un solid de revoluc parte 1   ucv (2021)
Vol de un solid de revoluc parte 1 ucv (2021)
 
Las torres de hanói
Las torres de hanóiLas torres de hanói
Las torres de hanói
 
Diapositiva torre hanoi german carluccio
Diapositiva torre hanoi german carluccioDiapositiva torre hanoi german carluccio
Diapositiva torre hanoi german carluccio
 
Las torres de Hanoi
Las torres de HanoiLas torres de Hanoi
Las torres de Hanoi
 
Torres de hanói
Torres de hanóiTorres de hanói
Torres de hanói
 
Torre de hanoi
Torre de hanoiTorre de hanoi
Torre de hanoi
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoi
 

Último

TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOPsicoterapia Holística
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024IES Vicent Andres Estelles
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptNancyMoreiraMora1
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesMarisolMartinez707897
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primariaWilian24
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSYadi Campos
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxNadiaMartnez11
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxpvtablets2023
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 

Último (20)

TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria6°_GRADO_-_MAYO_06 para sexto grado de primaria
6°_GRADO_-_MAYO_06 para sexto grado de primaria
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptxRESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
RESULTADOS DE LA EVALUACIÓN DIAGNÓSTICA 2024 - ACTUALIZADA.pptx
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 

Torre de hanoi

  • 1. REPÚBLICA BOLIVARIANA DE VENEZUELA INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN MATURÍN TORRE DE HANOI Trabajo de Programación No Numérica II Autor(es): Felizola Vicenzo Asesor(a): Ing. María Aguilera Maturín, Junio de 2012
  • 2. La Torre de Hanoi, también conocido como el brahmanismo o el rompecabezas de la torre de fin del mundo, fue inventado y vendido como un juguete, en 1883, por el matemático francés Édouard Lucas. Según él, el juego que fue muy popular en China y Japón llegó de Vietnam. El matemático se inspiró en una leyenda hindú, que habla de un templo en Varanasi, ciudad sagrada de la India, donde había una torre sagrada del brahmanismo, cuya función era la de mejorar la disciplina mental de los jóvenes monjes. Según la leyenda, el gran templo de Benarés, bajo la cúpula que marca el centro del mundo, hay una placa de bronce en la que se fijan tres varillas de diamante.
  • 3. En una de estas barras, el dios Brahma en el momento de la creación del mundo, puso 64 discos de oro puro, por lo que el más grande es difícil de mantener en la placa de bronce y el otro se redujo al llegar a la cima. El premio fue entregado a los monjes para mover la torre formada por discos de una barra a otra, utilizando el tercero como asistente con las restricciones de mover un disco a la vez y nunca colocar un disco más grande sobre uno de menor tamaño
  • 4. El juego de las torres de Hanoi, o torres de diamante, es un juego oriental muy antiguo que hoy se conoce en todo el mundo. El juego matemático de las Torres de Hanoi consiste en un dispositivo que consta de tres varillas verticales A, B y C y un número variable de discos. Los n discos son todos de diferente tamaño y, en la posición de partida del juego, todos los discos están colocados en la varilla A ordenados de mayor a menor tamaño, esto es, el mayor en el lugar más bajo y el menor arriba. Del número de discos depende la complejidad de la solución. El juego consiste en lo siguiente: Comenzando en la posición de partida. Trasladar todos los discos a la varilla B, pero colocados también de mayor a menor, en el mismo orden en el que estaban colocados en la varilla A. Para el traslado de discos podemos utilizar la varilla C, pero se debe cumplir siempre la condición de que sólo se puede mover un disco cada vez y que en ningún caso y en ningún paso se podrá colocar un disco mayor sobre otro de menor radio que él.
  • 5. El problema de las Torres de Hanoi es un problema utilizado frecuentemente como ejemplo de resolución de algoritmos. Se puede imaginar que se tienen 3 postes llamados A, B y C. En el poste A se tienen n discos de diferente diámetro, acomodados en orden creciente de diámetro desde lo más alto hasta lo más bajo. Solamente se puede mover un disco a la vez desde un poste hasta otro y no esta permitido poner un disco más grande sobre otro más pequeño. La tarea consiste en mover todos los discos desde el poste A hasta el poste C. Ejemplo N 1: Se debe Escribir una función que reciba como parámetro n y que imprima en pantalla todos los pasos a seguir para mover los discos del poste A al poste C. Solución Pensando primero en el caso mas pequeño y trivial si n = 1, se tendría un solo disco y solo habría que moverlo de la torre A a la C. Ahora, suponiendo que para algún n ya se sabe cómo mover n − 1 discos de una torre a cualquier otra ¿qué se debe hacer? Luego de hacer esta pregunta es fácil llegar a la conclusión de que primero hay que mover los primeros n − 1 discos a la torre B, luego el disco n a la torre C, y posteriormente mover los n − 1 discos de la torre B a la torre C.
  • 6. Se puede estar seguro que lo anterior funciona ya que los primeros n − 1 discos de la torre siempre serán mas pequeños que el disco n, por lo cual se podrían colocar libremente sobre el disco n si así lo requirieren. Por inducción entonces, el procedimiento anterior funciona. Así que el algoritmo de Divide y Vencerás queda de la siguiente manera: Sea X la torre original, Y la torre a la cual se quieren mover los discos, y Z la otra torre. • Para n > 1, hay que mover n − 1 discos de la torre x a la z, luego mover un disco de la torre x a la Y y finalmente mover n − 1 discos de la torre Z a la Y. • Para n = 1, hay que mover el disco de la torre X a la Y ignorando la torre Z. Se puede notar que aquí los pasos de Divide y Vencerás se resumieron en uno sólo, pero si están presentes ambos. El siguiente código muestra una implementación del algoritmo anterior, y utiliza como parámetros los nombres de las 3 torres, utilizando parámetros predeterminados como A, B y C. Código: Torres de Hanoi (1) int hanoi(int n, char x='A', char y='C', char z='B'){ (2) if(n==1){ (3) printf("Mueve de %c a %c.n", x, y);
  • 7. (4) }else{ (5) hanoi(n-1, x, z, y); (6) printf("Mueve de %c a %c.n", x, y); (7) hanoi(n-1, z, y, x); (8) } (9) } Ejemplo N 2: ¿Cuántas líneas imprime Hanoi (n) (asumiendo que esta función está implementada como se muestra en el código anterior)? Solución Sea H(n) el número de líneas que imprime Hanoi (n). Es obvio que H (1) = 1 puesto que Hanoi (1) solamente imprime una línea. Se puede Notar que cada que se llama a Hanoi (n) se está llamando dos veces a Hanoi (n−1) una vez en la línea 5 y otra en la línea 7. Además, en la línea 6 imprime un movimiento. Por lo tanto se obtiene la siguiente función recursiva: H(1) = 1 H(n) = H(n − 1) * 2 + 1
  • 8. Ahora se pueden hacer unas cuantas observaciones para simplificar aún más esta función recursiva: H (1) = 1 = 1 H (2) = 2 + 1 = 3 H (3) = 4 + 2 + 1 = 7 H (4) = 8 + 4 + 2 + 1 = 15 H (5) = 16 + 8 + 4 + 2 + 1 = 31 H (6) = 32 + 16 + 8 + 4 + 2 + 1 = 63 Por inducción se puede observar que como con H (1) si se cumple y (2n-1 + 2n-2+ 2n-3 +... + 20) 2 + 1 = 2n + 2n-1 + 2n-2 +... + 20 Solución Sea H(n) el número de líneas que imprime Hanoi (n). Es obvio que H (1) = 1 puesto que Hanoi (1) solamente imprime una línea. Nótese que cada que se llama a Hanoi (n) se está llamando dos veces a Hanoi (n−1) una vez en la línea 5 y otra en la línea 7. Además, en la línea 6 imprime un movimiento. Por lo tanto obtenemos la siguiente función recursiva: H(1) = 1 H(n) = H(n − 1) * 2 + 1
  • 9. Ahora se pueden hacer unas cuantas observaciones para simplificar aún más esta función recursiva: H (1) = 1 = 1 H (2) = 2 + 1 = 3 H (3) = 4 + 2 + 1 = 7 H (4) = 8 + 4 + 2 + 1 = 15 H (5) = 16 + 8 + 4 + 2 + 1 = 31 H (6) = 32 + 16 + 8 + 4 + 2 + 1 = 63 Por inducción se puede observar que como con H (1) si se cumple y (2n-1 + 2n-2+ 2n-3 +... + 20) 2 + 1 = 2n + 2n-1 + 2n-2 +... + 20 Entonces para cualquier número n la proposición se debe de cumplir. H(n) = 2n - 1 De nuevo por inducción H (0) = 20 − 1 Y se puede suponer que para alguna n, H(n) = 2n − 1 (2n − 1)(n) + 1 = 2n+1 − 2 + 1 = 2n+1 − 1 Por lo tanto, se concluye que la respuesta de este problema es sin lugar a dudas 2n − 1