Post on 05-Jul-2020
Recursión: Solución de Problemas Matemáticas Discretas - p. 1/7
Matemáticas DiscretasTC1003
Recursión: Solución de ProblemasDepartamento de Matemáticas / Centro de Sistema Inteligentes
ITESM
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7
Recursión: Las Torres de Hanoi
En 1883 el matemático fran-cés Édouard Lucas (4/april/1842-3/october/1891) inventó un rom-pecabezas que llamó Las Torresde Hanoi.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7
Recursión: Las Torres de Hanoi
En 1883 el matemático fran-cés Édouard Lucas (4/april/1842-3/october/1891) inventó un rom-pecabezas que llamó Las Torresde Hanoi. El juego consistía deocho discos de madera con hoyosen su centro, los cuales se apila-ban en tamaño decreciente en unposte en una fila de tres postes.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7
Recursión: Las Torres de Hanoi
En 1883 el matemático fran-cés Édouard Lucas (4/april/1842-3/october/1891) inventó un rom-pecabezas que llamó Las Torresde Hanoi. El juego consistía deocho discos de madera con hoyosen su centro, los cuales se apila-ban en tamaño decreciente en unposte en una fila de tres postes.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7
Recursión: Las Torres de Hanoi
En 1883 el matemático fran-cés Édouard Lucas (4/april/1842-3/october/1891) inventó un rom-pecabezas que llamó Las Torresde Hanoi. El juego consistía deocho discos de madera con hoyosen su centro, los cuales se apila-ban en tamaño decreciente en unposte en una fila de tres postes. Eljugador debería cambiar todos losdiscos de un poste a otro,
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7
Recursión: Las Torres de Hanoi
En 1883 el matemático fran-cés Édouard Lucas (4/april/1842-3/october/1891) inventó un rom-pecabezas que llamó Las Torresde Hanoi. El juego consistía deocho discos de madera con hoyosen su centro, los cuales se apila-ban en tamaño decreciente en unposte en una fila de tres postes. Eljugador debería cambiar todos losdiscos de un poste a otro, siempremoviendo de uno en uno y
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7
Recursión: Las Torres de Hanoi
En 1883 el matemático fran-cés Édouard Lucas (4/april/1842-3/october/1891) inventó un rom-pecabezas que llamó Las Torresde Hanoi. El juego consistía deocho discos de madera con hoyosen su centro, los cuales se apila-ban en tamaño decreciente en unposte en una fila de tres postes. Eljugador debería cambiar todos losdiscos de un poste a otro, siempremoviendo de uno en uno y nun-ca apilando un disco sobre otro demenor tamaño.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 3/7
Las Torres de Hanoi: Portada Juego
THE TOWER OFHANOÏ
AUTHENTIC BRAINTEASER OF THE
ANAMITES
A GAME BROUGHTBACK FROM
TONKIN
BY PROFESSOR N.CLAUS (OF SIAM)
Mandarin of theCollege of
Li-Sou-Stian!
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 4/7
Las Torres de Hanoi: Links
■ Un applet en:http://www.mazeworks.com/hanoi/
■ Un juego interactivo en:http://www.ability.org.uk/tower.html
■ Información:http://www.cut-the-knot.org/recurrence/hanoi.shtml
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 5/7
Las Torres de Hanoi: Solución
Suponga 3 postes:
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 5/7
Las Torres de Hanoi: Solución
Suponga 3 postes:■ Poste origen: donde se encuentran ahora los
discos.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 5/7
Las Torres de Hanoi: Solución
Suponga 3 postes:■ Poste origen: donde se encuentran ahora los
discos.■ Poste meta: donde se deberán colocar los
discos.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 5/7
Las Torres de Hanoi: Solución
Suponga 3 postes:■ Poste origen: donde se encuentran ahora los
discos.■ Poste meta: donde se deberán colocar los
discos.■ Poste auxiliar: donde se pueden hacer
movimientos.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 5/7
Las Torres de Hanoi: Solución
Suponga 3 postes:■ Poste origen: donde se encuentran ahora los
discos.■ Poste meta: donde se deberán colocar los
discos.■ Poste auxiliar: donde se pueden hacer
movimientos.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.Paso InductivoSuponga un pilar con k + 1 discos en un poste“origen” y que se desean colocar en el poste“meta”.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.Paso InductivoSuponga un pilar con k + 1 discos en un poste“origen” y que se desean colocar en el poste“meta”. Suponga también que se tiene una formade colocar k discos de un poste cualquiera a otroposte cualquiera usando un poste auxiliar paramovimientos (Hipótesis Inductiva).
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.Paso InductivoSuponga un pilar con k + 1 discos en un poste“origen” y que se desean colocar en el poste“meta”. Suponga también que se tiene una formade colocar k discos de un poste cualquiera a otroposte cualquiera usando un poste auxiliar paramovimientos (Hipótesis Inductiva). Entonces unaestrategia de solución será:
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.Paso InductivoSuponga un pilar con k + 1 discos en un poste“origen” y que se desean colocar en el poste“meta”. Suponga también que se tiene una formade colocar k discos de un poste cualquiera a otroposte cualquiera usando un poste auxiliar paramovimientos (Hipótesis Inductiva). Entonces unaestrategia de solución será:■ Mover los k primeros discos del poste origen al poste auxiliar con
el proceso solución dado en la hipótesis inductiva,
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.Paso InductivoSuponga un pilar con k + 1 discos en un poste“origen” y que se desean colocar en el poste“meta”. Suponga también que se tiene una formade colocar k discos de un poste cualquiera a otroposte cualquiera usando un poste auxiliar paramovimientos (Hipótesis Inductiva). Entonces unaestrategia de solución será:■ Mover los k primeros discos del poste origen al poste auxiliar con
el proceso solución dado en la hipótesis inductiva,
■ Una vez liberado el disco k + 1, moverlo del poste origen al postemeta, y
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 6/7
Caso BaseSi hay un sólo disco (n=1) sólo colóquelo en enposte meta.Paso InductivoSuponga un pilar con k + 1 discos en un poste“origen” y que se desean colocar en el poste“meta”. Suponga también que se tiene una formade colocar k discos de un poste cualquiera a otroposte cualquiera usando un poste auxiliar paramovimientos (Hipótesis Inductiva). Entonces unaestrategia de solución será:■ Mover los k primeros discos del poste origen al poste auxiliar con
el proceso solución dado en la hipótesis inductiva,
■ Una vez liberado el disco k + 1, moverlo del poste origen al postemeta, y
■ Mover los k discos del poste auxiliar al poste meta con el procesode la hipótesis inductiva.
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 7/7
Hanoi( n, origen, distino, auxiliar)if (n == 1) then
printf(“Disco %d: de %da %d\n”,1,origen,destino);else
Hanoi(n-1,origen,auxiliar,destino);printf(“Disco %d: de %d
a %d\n”,n,origen,destino);Hanoi(n-1,auxiliar,destino,origen);
end if
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 7/7
Hanoi( n, origen, distino, auxiliar)if (n == 1) then
printf(“Disco %d: de %da %d\n”,1,origen,destino);else
Hanoi(n-1,origen,auxiliar,destino);printf(“Disco %d: de %d
a %d\n”,n,origen,destino);Hanoi(n-1,auxiliar,destino,origen);
end ifEjecutar
Hanoi(8,1,2,3)
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 7/7
Hanoi( n, origen, distino, auxiliar)if (n == 1) then
printf(“Disco %d: de %da %d\n”,1,origen,destino);else
Hanoi(n-1,origen,auxiliar,destino);printf(“Disco %d: de %d
a %d\n”,n,origen,destino);Hanoi(n-1,auxiliar,destino,origen);
end ifEjecutar
Hanoi(8,1,2,3)
¿¿Total de movimientos para mover n discos??
HanoiPortadaLinksSolucion
Recursión: Solución de Problemas Matemáticas Discretas - p. 7/7
Hanoi( n, origen, distino, auxiliar)if (n == 1) then
printf(“Disco %d: de %da %d\n”,1,origen,destino);else
Hanoi(n-1,origen,auxiliar,destino);printf(“Disco %d: de %d
a %d\n”,n,origen,destino);Hanoi(n-1,auxiliar,destino,origen);
end ifEjecutar
Hanoi(8,1,2,3)
¿¿Total de movimientos para mover n discos??
a1 = 1, y ak+1 = ak + 1 + ak = 2 ak + 1