Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links...

Preview:

Citation preview

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

Recommended