Presentación torres de hanoi

1,592 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,592
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Presentación torres de hanoi

  1. 1. Republica Bolivariana de Venezuela I.U.P. Santiago Mariño Extensión Maturín Autor: Jorge Córdova
  2. 2. • Historia de los Juegos Matemáticos (II) - Torres de Hanoi El enigma de las Torres de Hanoi trata de un juegooriental muy antiguo, sin embargo fue presentado, a nivelmundial, en 1883 por el matemático francés EdouardLucas, bajo el seudónimo de N. Lucas de Siam.
  3. 3. • Notación• Los discos se numerarán de 1 a 8 (o a n, en general), empezando por el más pequeño. Los postes (que se supondrán alineados de izquierda a derecha) serán marcados con letras mayúsculas (A, B y C). El inicial será A y el objetivo C.•
  4. 4. • Un algoritmo recursivo• La Torre de Hanoi suele aparecer como ejemplo para ilustrar el concepto de recursión en los cursos de programación de computadoras, ya que existe un algoritmo recursivo sorprendentemente simple que lo resuelve (por si alguien no lo sabe, un algoritmo es recursivo si se llama a sí mismo en alguno de sus pasos). Supongamos que queremos trasladar los ocho discos del poste A al poste C. Como el disco 8 siempre está abajo del todo, la única forma de hacerlo es trasladar primero la torre de siete discos 1...7 al poste B. Entonces podremos llevar el disco 8 de A a C, y para terminar tendremos que trasladar de nuevo la torre 1...7, ahora de B a C.•
  5. 5. • Los movimientos de cada disco• Analizando otra vez el algoritmo recursivo y el razonamiento que nos llevó a él podemos comprobar que (centrándonos en el caso de 8 discos) el disco 8 se mueve una sola vez, el 7 dos veces, el 6 cuatro veces, etc. El disco 1 se mueve 128 veces. La suma de estas potencias de 2 coincide con el total de movimientos antes calculado (1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255). En general, el disco k se mueve 2n−k veces, y 20 + 21 + ... + 2n−1 = 2n−1.• Vamos ahora a fijarnos en los momentos concretos en que se mueve cada disco. Para empezar trataremos el caso de cinco discos que en esta ocasión pintaremos con cinco tonos de azul.
  6. 6. • Solución Algorítmica Una forma de resolver la colocación de la torre esfundamentándose en el disco más pequeño, en este casoel de hasta arriba. El movimiento inicial de este es hacia lavarilla auxiliar. El disco número dos por regla, se debemover a la varilla número tres. Luego; el disco uno semueve a la varilla tres para que quede sobre el disco dos.A continuación se mueve el disco que sigue de la varillauno, en este caso el disco número tres, y se coloca en lavarilla dos. Finalmente el disco número uno regresa de lavarilla tres a la uno (sin pasar por la dos) y asísucesivamente. Es decir, el truco está en el disco máspequeño
  7. 7. Divide y vencerás. Ejemplo• El juego de las torres de Hanoi es un juego oriental muy antiguo que hoy se conoce en todo el mundo.• Consta de tres columnas y una serie de discos de distintos tamaños. Los discos están acomodados de mayor a menor en una de las columnas.• El juego consiste en pasar todos los discos a otra de las columnas y dejarlos como estaban: de mayor a menor.Las reglas del juego son las siguientes:• Sólo se puede mover un disco cada vez.• Para cambiar los discos de lugar se pueden usar las tres columnas.• Nunca deberá quedar un disco grande sobre un disco pequeño.
  8. 8. • n El problema de las torres de Hanoi se puede resolver• de forma muy sencilla con un enfoque divide y• vencerás.• n El problema consiste en desplazar n discos de la• columna i de inicio a la columna f de fin utilizando la• columna t como un “almacenamiento” temporal.• n El problema menor consiste en mover n-1 discos de i• a t utilizando f como soporte temporal.• n De esta forma es posible mover un disco (el que• queda) desde i hasta f y, después, mover los n-1• discos de t a f.
  9. 9. • acción Hanoi (n E entero, i,f,t E soporte)• inicio• si n=1 entonces• mover un disco de i a f• si no• llamar Hanoi (n-1,i,t,f)• mover un disco de i a f• llamar Hanoi (n-1,t,f,i)• fin si• fin

×