25
Recursión: Solución de Problemas Matemáticas Discretas - p. 1/7 Matemáticas Discretas TC1003 Recursión: Solución de Problemas Departamento de Matemáticas / Centro de Sistema Inteligentes ITESM

Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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

Page 2: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 3: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 4: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 5: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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,

Page 6: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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

Page 7: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 8: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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!

Page 9: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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

Page 10: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

HanoiPortadaLinksSolucion

Recursión: Solución de Problemas Matemáticas Discretas - p. 5/7

Las Torres de Hanoi: Solución

Suponga 3 postes:

Page 11: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 12: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 13: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 14: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 15: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 16: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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”.

Page 17: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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).

Page 18: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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á:

Page 19: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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,

Page 20: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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

Page 21: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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.

Page 22: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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

Page 23: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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)

Page 24: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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??

Page 25: Matemáticas Discretas TC1003cb.mty.itesm.mx/tc1003/lecturas/tc1003-082.pdfHanoi Portada Links Solucion´ Recursión: Solución de Problemas Matemáticas Discretas - p. 2/7 Recursión:

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