Upload
others
View
29
Download
1
Embed Size (px)
Citation preview
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
La Torre de Hanoi y El Sistema Binario
La Torre de Hanoi
HISTORIA. El puzzle llamado la torre de Hanoi fue inventado por el
matemático francés en 1883 Édouard Lucas d'Amiens (1842-1891), quien, a
efectos publicitarios, inventó la siguiente leyenda:
Portada original del juego de Lucas, 1883
El juego consiste en una torre formada por un conjunto de discos
insertados en una varilla y colocados en forma de pirámide (cada disco es
de menor tamaño que el disco sobre el que reposa). El objetivo es transferir
la torre completa a otra varilla, utilizando una tercera varilla auxiliar,
moviendo sólo un disco cada vez y nunca colocando uno más grande sobre
otro mas pequeño.
Página de 1 38
La torre de Brahma en el gran templo de Benarés tiene un poste en el que Dios i n s e r t ó , e l d í a d e l a creación, 64 discos dorados c o l o c a d o s e n o r d e n decreciente de tamaño. Estos discos deben moverse, uno por uno, por los monjes del templo a otro poste, con la ayuda de un tercer poste, de modo que nunca un disco de mayor tamaño esté colocado sobre otro de menor tamaño. Se decía que en el momento en que se lograra la transposición, el templo se derrumbaría y la tierra desaparecería.
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Para desarrollar el estudio del juego vamos a llamar a cada uno de
los postes con las letras A (poste origen), B (poste auxiliar) y C (poste
destino) y enumeraremos los discos, adoptando el siguiente criterio: si
estamos hablando, por ejemplo del juego de las torres de Hanoi con 7 discos
(en lo que sigue TH7), nombraremos a los discos con los números del 1 al 7,
siendo el disco 1 el más pequeño, y el disco 7 el más grande.
Si empezamos el juego con un solo disco, es obvio que para llevar ese
disco al poste destino, sólo se necesita hacer un movimiento.
Si tenemos dos discos colocados en el poste origen A. El número de
movimientos mínimo que tenemos que hacer es 3, que son: llevamos en
primer lugar el disco 1 al poste auxiliar B, después el disco 2 al poste
destino C, y por último el disco 1 lo desplazamos al poste destino C.
Con tres discos, tendremos que trasladar los discos 1 y 2 que se
encuentran en el poste origen A al poste auxiliar B, invirtiendo en ello 3
movimientos, en el siguiente movimiento desplazamos el disco 3 del poste
origen A al poste destino C, y necesitamos otros tres movimientos para
trasladar los discos 1 y 2 del poste B al poste C; por tanto para trasladar
tres discos necesitamos hacer 3+1+3=7 movimientos.
Lo hecho para tres discos, se puede aplicar para cuatro; es decir, para
resolver una torre formada por 4 discos se necesitarán hacer como mínimo
15 movimientos: 7 para llevar los discos 1, 2 y 3 al poste B, 1 para llevar el
disco 4 al poste C y otros 7 para llevar los discos 1, 2 y 3 del poste B al poste
C; por tanto para trasladar 4 discos necesitamos hacer como mínimo
7+1+7=15 movimientos.
Aplicando un razonamiento similar al utilizado para dos, tres y
cuatro discos, estamos en condiciones de generalizar y demostrar que el
mínimo número de movimientos que se necesitan hacer para resolver THn
es 1 más el doble de movimientos mínimos que se necesita para resolver
TH(n-1). También se puede demostrar por inducción que ese número mínimo
de movimientos es . 2n −1
Página de 2 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
En efecto: Llamemos al mínimo número de movimientos que se
necesitan hacer para resolver THn. En THn hay que trasladar los (n−1) discos que están sobre el disco n hasta el poste B, lo que aporta
movimientos; luego se traslada el disco grande (disco n) hasta C y,
finalmente, se trasladan los (n−1) discos menores desde B hasta C, lo que nos
suma otros movimientos. Entonces: como queríamos
demostrar.
Veamos ahora que . Este resultado es cierto para n=1, ya que
y . Supongamos ahora que el resultado es cierto para n y
veamos que ocurre para n+1:
Empecemos por considerar el juego de la Torre de Hanoi con 5 discos:
Sabemos que el número mínimo de movimientos que se hacen para
trasladar los 5 discos del poste origen al poste destino es
Veamos cuando se mueve por primera vez cada uno de los discos en
TH5:
Posición Inicial en TH5
Mn
Mn−1( )
Mn−1( ) Mn =2⋅M n−1( ) +1
Mn =2n −1
M1 =1 1=21 −1
2 n+1( ) −1=2⋅2n −1=2n +2n −1= 2n −1( )+ 2n −1( )+1=2⋅Mn +1=M n+1( )
31=25 −1
Página de 3 38
1
2
3
4
5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Es evidente que el disco 1 se mueve por primera vez en el primer
movimiento,
Primer Movimiento del disco 1: 1º movimiento ( )
A continuación se mueve el disco 2 al poste B:
Primer Movimiento del disco 2: 2º movimiento ( )
y en el tercer movimiento, el disco 1 vuelve a moverse; pero ahora al poste
B, encima del disco 2:
3º Movimiento (los discos 1 y 2 que estaban sobre el disco 3 se desplazan al poste B)
El disco 3, en el cuarto movimiento (cuando la pila de los discos 1 y 2
que estaban encima del disco 3 se han desplazado al poste B), se mueve al
poste C:
Primer Movimiento del disco 3: 4º movimiento ( )
El disco 4 en el octavo movimiento (cuando la pila de los discos 1, 2 y
3 se han desplazado al poste C):
1=20
2=21
4 =22
Página de 4 38
2
3
4
5 1
A B C
3
4 1
5 2
A B C
3
4
5 2 1
A B C
4 1
5 2 3
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Primer Movimiento del disco 4: 8º movimiento ( )
y por último el disco 5 se mueve por primera y única vez en el movimiento
decimosexto (cuando la pila de discos 1, 2, 3 y 4 se han desplazado al poste
B).
Primer Movimiento del disco 5: 16º movimiento ( )
En general si consideramos el juego de la Torre de Hanoi con n discos
y , el disco se mueve por primera vez cuando se desplacen los
discos que tiene encima; es decir, en el movimiento .
Veamos también con que frecuencia se mueven cada uno de los discos
en TH5:
Es evidente que el disco 5 se mueve tan solo una vez, y lo hace en el
movimiento . Sabemos que el disco 4 se mueve por primera vez en el
movimiento
8=23
16=24
1≤ k ≤n k
k−1 2k−1
16=24
8=23
Página de 5 38
1
4 2
5 3
A B C
1
2
3
5 4
A B C
1
2
5 4 3
A B C
1
2
3
4 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Posición de los discos después de 8 movimientos.
A partir de esta posición, para que el disco 4 se mueva por segunda
vez, la pila formada por los discos 1,2 y 3 deben desplazarse sobre el disco 4
que está en el poste B para dejar libre el poste C y poder así colocarse ahí el
disco 5
Posición de los discos después de 8+7=15 movimientos.
Posición de los discos después de 16 movimientos.
Ahora, para que el disco 4 pueda volver a moverse, se necesita que la pila
de 3 discos que están sobre él se desplacen al poste A:
Posición de los discos después de 16+7=23 movimientos.
Página de 6 38
1
2
5 4 3
A B C
1
2
3
5 4
A B C
1
2
3
4 5
A B C
1
2
3 4 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
2º Movimiento del disco 4: 8+16=24
Para estudiar la frecuencia de movimientos del disco 3 vamos a ver
que se necesita para que este disco se mueva:
Partiendo de la posición inicial:
Para que el disco 3 se mueva por primera vez necesita que se
desplacen los discos 1 y 2 al poste B para así moverse el al poste C:
Primer Movimiento del disco 3: Movimiento 4
A partir de esta posición, el disco 3 se moverá por segunda vez cuando el
disco 4 se pose sobre el poste B y el disco 3 vaya encima de el, para eso se
necesita pasar por las siguientes posiciones:
Movimiento 8º =4+4 (primer movimiento del disco 4)
Página de 7 38
1
2 4
3 5
A B C
1
2
3
4
5
A B C
4 1
5 2 3
A B C
1
2
5 4 3
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Movimiento 4+4+3=11
2º Movimiento del disco 3 (4+8=12)
Para el tercer movimiento del disco 3 tenemos que pasar por las
siguientes posiciones:
Movimiento 4+8+3=15
Movimiento 4+8+3+1=16
Movimiento 4+8+3+1+3=19
Página de 8 38
1
2
5 4 3
A B C
1
2 3
5 4
A B C
1
2
3
5 4
A B C
1
2
3
4 5
A B C
1
3 2
4 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
3º Movimiento del disco 3 (4+8+8=20)
Para que el disco 3 se vuelva a mover se necesitan hacer otros 8
movimientos, que son: tres movimientos para que la pila formada por los
discos 1 y 2 se posen sobre el disco 3, un movimiento más para que el disco 4
se ponga sobre el disco 5 en el poste C, tres movimientos más para que la
pila de los discos 1 y 2 se sitúen en el poste B, y por último un movimiento
más para que el disco 3 se ponga sobre el disco 4 en el poste C, y este es el
último movimiento del disco 3.
Movimiento 4+8+8+3=23
Movimiento 4+8+8+3+1=24
Movimiento 4+8+8+3+1+3=27
4º Movimiento del disco 3 (4+8+8+8=28)
Página de 9 38
1
2
3 4 5
A B C
1
2
3 4 5
A B C
1
2 4
3 5
A B C
1 4
3 2 5
A B C
3
1 4
2 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Acabamos de ver que el disco 3 se mueve por primera vez en el 4º
movimiento y después se mueve cada 8 movimientos. Veamos ahora que el
disco 2 se mueve por primera vez en el 2º movimiento, y después cada 4
movimientos:
Movimiento 2º (primer movimiento del disco 2)
Para que el disco 2 se mueva por segunda vez, el disco 1 se mueve del
poste C al poste B encima del disco 2, a continuación el disco 3 se mueve al
poste C, en el siguiente movimiento el disco 1 se mueve del poste B al poste
A encima del disco 4 y en el siguiente movimiento el disco 2 va al poste C
encima del disco 3:
Página de 10 38
1
2
3
4
5
A B C
3
4
5 2 1
A B C
3
4 1
5 2
A B C
4 1
5 2 3
A B C
1
4
5 2 3
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
2º Movimiento del disco 2 (2+1+1+1+1=6)
A partir de esta posición, de cuatro en cuatro movimientos ,
estaríamos en las siguientes posiciones:
3º Movimiento del disco 2 (2+4+4=10)
4º Movimiento del disco 2 (2+4+4+4=14)
5º Movimiento del disco 2 (2+4+4+4+4=18)
6º Movimiento del disco 2 (2+4+4+4+4+4=22)
7º Movimiento del disco 2 (2+4+4+4+4+4+4=26)
8º Movimiento del disco 2 (2+4+4+4+4+4+4+4=30)
Página de 11 38
1
4 2
5 3
A B C
2 1
5 4 3
A B C
2
3
5 4 1
A B C
3 2
1 4 5
A B C
2 1
3 4 5
A B C
1
4
3 2 5
A B C
2
3
4
1 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Podríamos ver que el disco 1 se mueve por primera vez en el primer
movimiento, y luego cada 2. Lo estudiado hasta ahora se puede resumir en
la siguiente tabla:
Página de 12 38
Movimientos de los discos en TH5
COLOCACIÓN DE LOS DISCOS
Nº de Movim.
A B C
0 Disco Está en Va a Dirección 5,4,3,2,1
1 1 A C I 5,4,3,2 1
2 2 A B D 5,4,3 2 1
3 1 C B I 5,4,3 2,1
4 3 A C I 5,4 2,1 3
5 1 B A I 5,4,1 2 3
6 2 B C D 5,4,1 3,2
7 1 A C I 5,4 3,2,1
8 4 A B D 5 4 3,2,1
9 1 C B I 5 4,1 3,2
10 2 C A D 5,2 4,1 3
11 1 B A I 5,2,1 4 3
12 3 C B I 5,2,1 4,3
13 1 A C I 5,2 4,3 1
14 2 A B D 5 4,3,2 1
15 1 C B I 5 4,3,2,1
16 5 A C I 4,3,2,1 5
17 1 B A I 1 4,3,2 5
18 2 B C D 1 4,3 5,2
19 1 A C I 4,3 5,2,1
20 3 B A I 3 4 5,2,1
21 1 C B I 3 4,1 5,2
22 2 C A D 3,2 4,1 5
23 1 B A I 3,2,1 4 5
24 4 B C D 3,2,1 5,4
25 1 A C I 3,2 5,4,1
26 2 A B D 3 2 5,4,1
27 1 C B I 3 2,1 5,4
28 3 A C I 2,1 5,4,3
29 1 B A I 1 2 5,4,3
30 2 B C D 1 5,4,3,2
31 1 A C I 5,4,3,2,1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Analizando la tabla de los movimientos de TH5 vemos como se van
moviendo cada uno de los discos:
El disco 1 empieza en el primer movimiento y luego se mueve cada 2,
además va recorriendo los postes con la secuencia C-B-A-C-B-A-C-B-A-…Con
un total de 16 movimientos.
El disco 2 empieza en el segundo movimiento y luego se mueve cada
4, además va recorriendo los postes con la secuencia B-C-A-B-C-A-B-C-…
Con un total de 8 movimientos,
El disco 3 empieza en el cuarto movimiento y luego se mueve cada 8,
además va recorriendo los postes con la secuencia C-B-A-C. Con un total de
4 movimientos.
El disco 4 empieza en el octavo movimiento y luego se mueve cada 16,
además va recorriendo los postes con la secuencia B-C. Con un total de 2
movimientos.
El disco 5 empieza en el movimiento 16 y hace un solo movimiento.
Después de haber estudiado la Torre de Hanoi con 5 discos, vemos que
aparecen demasiadas veces las potencias de base 2 ¿Tiene esto alguna
consecuencia? Por supuesto que si, veamos, veamos…
Sabemos que , cada uno de los sumandos es el
número de veces que se mueve cada disco; es decir, el disco 5 se mueve una
31=1+2+22 +23 +24
Página de 13 38
PRIMER MOVIMIENTO, FRECUENCIA, SECUENCIA Y Nº DE MOVIMIENTOS DEL DISCO n EN TH5
DISCOS PRIMER MOVIMIENTO FRECUENCIA SECUENCIA Nº DE
MOVIMIENTOS
1 1=20 2=21 C-B-A-… 16=24
2 1+1=2=21 4=22 B-C-A-… 8=23
3 3+1=4=22 8=23 C-B-A-… 4=22
4 7+1=8=23 16=24 B-C-A-… 2=21
5 15+1=16=24 C-B-A-… 1=20
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
vez, el disco 4 se mueve dos veces, el disco 3 se mueve cuatro veces, el disco
2 se mueve ocho veces y el disco 1 se mueve dieciséis veces.
La cuestión es si podríamos dar respuesta a dos preguntas:
1ª.- ¿Podríamos saber, después de un número de movimientos, desde 1
a 31, como están colocados los discos, y cuántas veces se ha movido cada
uno? Y…
2ª.- Viendo como están colocados los discos, ¿podríamos saber cuántos
movimientos se han realizado para llegar a esa posición y cuántas veces se
ha movido cada disco?
A esas dos preguntas podemos dar respuesta codificando cada
posición de TH5 mediante el Sistema de numeración Binario de la siguiente
forma:
Empecemos con un par de ejemplos:
1º.- ¿Cómo están colocados los discos en TH5 después de 23
movimientos? ¿Cuántas veces se ha movido cada disco para llegar a esa
posición después de esos 23 movimientos?
Lo primero que vamos a hacer es escribir 23 como suma de potencias
de 2:
. Los exponentes de esta suma de potencias de 2
nos van a dar la clave para saber como están colocados los discos después
de 23 movimientos:
Partiendo de la posición inicial de TH5:
Sabemos que se necesitan hacer movimientos para desplazar
la pila de los discos 1, 2, 3 y 4 que están en el poste A al poste B:
23=16+4+2+1=24 +22 +21 +20
24 −1=15
Página de 14 38
1
2
3
4
5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Movimientos
Movimientos
El siguiente exponente que aparece en la suma de potencias de 2 es 2.
Lo que hacemos es trasladar la pila formada por los discos 1 y 2 que está en
el poste B al poste C sobre el disco 5:
Movimientos
Sumamos un movimiento a esta posición obteniendo:
Movimientos
Sumando tres movimientos más a esta última posición obtenemos
como están colocados los discos después de 23 movimientos. Esos tres
movimientos son los que se necesitan hacer para trasladar la pila de los
discos 1 y 2 que están en el poste C al poste A encima del disco 3:
24 −1=15
24 −1+1=24 =16
24 +22 −1=16+3=19
24 +22 −1+1=16+4 =20
Página de 15 38
1
2
3
5 4
A B C
1
2
3
4 5
A B C
1
3 2
4 5
A B C
1
2
3 4 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Movimientos
LA TORRE DE HANOI Y EL SISTEMA BINARIO
El hecho de escribir el número 23 como suma de potencias de 2 nos
permite escribir el número 23 en el sistema de numeración binario, y ese
código binario nos lleva a responder a dos cuestiones: 1.- ¿Como están
colocados los discos después de 23 movimientos?, y 2.- ¿Cuantas veces se ha
movido cada disco para llegar a esa posición?. Además también podemos
saber cual es el disco que ha realizado el último movimiento (el movimiento
23):
El número 23 escrito en el sistema de numeración binario es 10111 y
este código nos dice no solo como están colocados los discos, sino también
cuantas veces se ha movido cada disco y cual es el último disco que se ha
movido:
El primer dígito corresponde a la posición del disco 5, como es 1 quiere
decir que se ha movido (se han realizado más de movimientos); por
tanto este disco se encuentra en el poste C, el siguiente dígito al ser distinto
que el anterior quiere decir que el disco 4 no se encuentra sobre el disco 5
en C (para que el disco 4 se encuentre sobre el disco 5 en el poste C, se le
24 +22 +21 +20 =16+4+2+1=23
24 =16
Página de 16 38
1
2
3 4 5
A B C
16 8 4 2 1
23 1 0 1 1 1
Nº Movimientos 1 1 3 6 12 23
Está en... C B A A A
Disco 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
tienen que sumar a los 16 movimientos 8 movimientos más, y 16+8=24 que
se pasa de 23); por tanto, el disco 4 se encuentra en el poste B (en el poste A
no puede estar). El tercer dígito también cambia con respecto al anterior;
por lo tanto el disco 3 no está sobre el disco 4 (no está en B); por lo tanto el
disco 3 está en el poste A. El cuarto dígito es igual al tercero; por tanto, el
disco 2 está sobre el disco 3 en el poste A. Por último, el quinto dígito
también es igual que el anterior, por lo que el disco 1 está sobre el disco 2
que se encuentra en el poste A. ¿Cómo sabemos con el código binario de 23
cuantas veces se ha movido cada disco? En el proceso para hacer el mínimo
número de movimientos para resolver TH5 sabemos que se necesitan hacer
movimientos, siendo cada uno de los
sumandos el número de movimientos de los discos 5, 4, 3, 2 y 1
respectivamente.
Considerando que el número 23 en binario es 1 0 1 1 1. Adoptamos la
siguiente regla con el código anterior: El primer dígito nos dice el número
de movimientos del disco 5 (0 o 1 movimiento). A partir de ahí el siguiente
dígito puede ser menor, igual, o mayor que el anterior (pasar de 1 a 0,
mantener el dígito, o pasar de 0 a 1). Si es menor, hacemos el doble del
anterior menos 1. Si es igual, hacemos el doble del anterior, y si es mayor,
hacemos el doble del anterior mas 1. Es decir que aplicando esta regla, el
código anterior nos lleva a lo siguiente: El disco 5 se ha movido una vez,
como el siguiente dígito es menor, hacemos el doble de 1 menos 1: 2x1-1=1 que
es el número de veces que se ha movido el disco 4, a continuación hacemos
el doble de 1 mas 1: 2x1+1=3, que es el número de movimientos del disco 3, y
a partir de aquí vamos haciendo siempre el doble del anterior: 2x3=6,
2x6=12 y así obtenemos el número de veces que se ha movido cada disco:
1+1+3+6+12=23. Si miramos el código 10111 de derecha a izquierda, el primer
uno que nos encontremos nos dice cuál es el disco que ha hecho el último
movimiento, en este caso, es el disco 1.
1+2+4+8+16=20 +21 +22 +23 +24 =31
Página de 17 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
2º.- Sabiendo que en TH5 los discos están colocados según el gráfico
siguiente:
¿Cuántos movimientos se han realizado para llegar a esa posición y
cuántas veces se ha movido cada disco?
Codificamos en el Sistema Binario mediante las siguientes reglas:
- Si el disco 5 se encuentra en el poste C, ponemos un 1, en caso
contrario ponemos 0.
- Si el disco 4 se encuentra sobre el disco 5, repetimos el dígito que
pusimos para el disco 5, y si no se encuentra sobre él, cambiamos de dígito
(de 0 a 1, o de 1 a 0), y esta regla se repite para los siguientes discos.
Aplicando esas dos reglas, obtenemos el siguiente código: 101010. A
cont inuac ión e s te número b inar io , l o pasamos a dec imal :
. El número de movimientos que se realizan en TH5
para llegar a esa posición es 21, y para saber cuantas veces se ha movido
cada disco, aplicamos lo mismo que en el primer ejemplo, que resumimos en
la siguiente tabla:
24 +22 +20 =16+4+1=21
Página de 18 38
1 2
3 4 5
A B C
16 8 4 2 1
21 1 0 1 0 1
Nº Movimientos 1 1 3 5 11 21
Está en... C B A C B
Disco 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Notas:
1ª.- En el estudio hecho hasta ahora sobre la Torre de Hanoi, se ha
utilizado como ejemplos el caso de 5 discos. Todo lo dicho para TH5 es
aplicable a cualquier número de discos; es decir para THn.
2ª.- En los gráficos utilizados hemos utilizado dos colores (blanco y
negro) para representar los discos. Esto no es casual, está justificado
atendiendo al Principio de paridad: “Un disco nunca toca a otro de la
misma paridad”. Es decir, en caso de que un disco esté en contacto con otro,
si es par toca a uno o dos impares y si es impar toca a uno o dos pares. Este
hecho hace enunciar a Conway, Guy y Berlekamp su Regla de oro (y plata):
“Usa discos que sean alternativamente de oro y plata y nunca pongas
juntos dos del mismo metal”.
A continuación se exponen unas tablas en las que se cambian el
número de discos (7 y 10 discos) para poder comprobar que las reglas
funcionan para cualquier número de discos:
Página de 19 38
nº de Movimientos en TH7
64 32 16 8 4 2 1
Total Mov.59 0 1 1 1 0 1 1
Nº de Mov. TH 7 0 1 2 4 7 15 30 59
Resto al div. por 3 0 1 2 1 1 0 0
Está en... A B B B C A A
Disco 7 6 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
En esta tabla se ha incluido una nueva fila en la que se incluye el
resto de dividir por 3 el número de movimientos que ha hecho cada disco,
ya que si sabemos cuantas veces se ha movido un disco y la secuencia de los
postes que van recorriendo, podemos saber en que poste se encuentra cada
disco. Expliquemos lo que aparece en la tabla anterior:
Los discos impares 1, 3, 5 y 7 siguen la secuencia C-B-A-C-B-A…
Los discos pares 2, 4 y 6 siguen la secuencia B-C-A-B-C-A…
Si un disco es impar y el resto de dividir el número de movimientos
por 3 es 0, está en el poste A, si es 1 está en el poste C y si es 2, está en el
poste B.
Si un disco es par y el resto de dividir el número de movimientos por
3 es 0, está en el poste A, si es 1 está en el poste B y si es 2, está en el poste C.
El disco 7 ha hecho 0 movimientos; por tanto se encuentra en el poste A.
El disco 6 ha hecho 1 movimiento; por tanto se encuentra en el poste B.
El disco 5 ha hecho 2 movimientos; por tanto se encuentra en el poste B.
El disco 4 ha hecho 4 movimientos; por tanto se encuentra en el poste B.
El disco 3 ha hecho 7 movimientos; por tanto se encuentra en el poste C.
El disco 2 ha hecho 15 movimientos; por tanto se encuentra en el poste A.
El disco 1 ha hecho 30 movimientos; por tanto se encuentra en el poste A.
La secuencia de letras de los postes en los que se encuentran los discos
(del 7 al 1) también podemos codificarla en binario, siguiendo la siguiente
regla:
Si la primera letra es A, pongo 0 y si es C, pongo 1. A partir de ahí, si
hay cambio de letra, cambio de dígito (de 0 a 1, o de 1 a 0).
Así la secuencia de letras ABBBCAA se transforma en el código
binario 0111011 que corresponde con los 59 movimientos del ejemplo.
Supongamos ahora que sabemos como están colocados los discos en
TH7 y nos preguntamos cuantos movimientos se han realizado y cuantas
Página de 20 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
veces se ha movido cada disco: Si los discos (del 7 al 1) están en los postes
CCABCAB. De esta secuencia de letras, pasamos al Código Binario 1101010,
que pasado al sistema de numeración decimal nos da el número:
, que es el número de movimientos y el número
de veces que se ha movido cada disco se resume en la siguiente tabla:
Otros ejemplos en TH7 son los siguientes:
26 +25 +23 +21 =64+32+8+2=106
Página de 21 38
nº de Movimientos en TH7
64 32 16 8 4 2 1
Total Mov.106 1 1 0 1 0 1 0
Nº de Mov. TH 7 1 2 3 7 13 27 53 106
Resto al div. por 3 1 2 0 1 1 0 2
Está en... C C A B C A B
Disco 7 6 5 4 3 2 1
nº de Movimientos en TH7
64 32 16 8 4 2 1
Total Mov.73 1 0 0 1 0 0 1
Nº de Mov. TH 7 1 1 2 5 9 18 37 73
Resto al div. por 3 1 1 2 2 0 0 1
Está en... C B B C A A C
Disco 7 6 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
A continuación se ponen unos cuantos ejemplos con 10 discos:
Página de 22 38
nº de Movimientos en TH7
64 32 16 8 4 2 1
Total Mov.63 0 1 1 1 1 1 1
Nº de Mov. TH 7 0 1 2 4 8 16 32 63
Resto al div. por 3 0 1 2 1 2 1 2
Está en... A B B B B B B
Disco 7 6 5 4 3 2 1
Nº de Movimientos en TH10
512 256 128 64 32 16 8 4 2 1
Total Mov.545 1 0 0 0 1 0 0 0 0 1
Nº de Mov. TH 10 1 1 2 4 9 17 34 68 136 273 545
Resto al div. por 3 1 1 2 1 0 2 1 2 1 0
Está en... C B B B A C C C C A
Disco 10 9 8 7 6 5 4 3 2 1
Nº de Movimientos en TH10
512 256 128 64 32 16 8 4 2 1
Total Mov.348 0 1 0 1 0 1 1 1 0 0
Nº de Mov. TH 10 0 1 1 3 5 11 22 44 87 174 348
Resto al div. por 3 0 1 1 0 2 2 1 2 0 0
Está en... A B C A B C C C A A
Disco 10 9 8 7 6 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
A continuación se proponen unos ejercicios con sus soluciones:
Ejercicio 1: Sabiendo que en TH10 el último disco que se ha movido es
el disco 5 y que los discos 10, 9, 8, 7 y 6 se encuentran en los postes ABCAB,
¿Cuántos movimientos se han realizado? ¿Cuántas veces se ha movido cada
disco?
Respuesta:
Al saber en que postes están los discos 10, 9, 8, 7 y 6 (ABCAB) nos dice
que el código Binario de esa posición empieza por los dígitos 01010, como el
disco 5 es el último que se ha movido, en la posición del disco 5 tiene que
estar un 1 y los siguientes dígitos correspondientes a los discos 4, 3, 2 y 1
tienen que ser 0; por tanto el código binario completo de esa posición es
0101010000, que corresponde con el número de movimientos siguiente:
como se ve en la siguiente tabla:
Ejercicio 2 ¿Cuántos movimientos hay que realizar como mínimo en
TH10 para pasar de la posición de los discos AACCCCABBA a la posición
CBBCABCAAC? ¿Cuántas veces se ha movido cada disco de una posición a
otra?
28 +26 +24 =256+64+16=336
Página de 23 38
Nº de Movimientos en TH10
512 256 128 64 32 16 8 4 2 1
Total Mov.336 0 1 0 1 0 1 0 0 0 0
Nº de Mov. TH 10 0 1 1 3 5 11 21 42 84 168 336
Resto al div. por 3 0 1 1 0 2 2 0 0 0 0
Está en... A B C A B C A A A A
Disco 10 9 8 7 6 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Respuesta:
Codificamos las dos posiciones mediante el Código Binario para saber
cuantos movimientos se han realizado como mínimo en cada una de las
posiciones: La posición AACCCCABBA corresponde con el Código Binario
0011110110 que pasando al sistema decimal tenemos 246 movimientos, de la
misma forma, la posición CBBCABCAAC corresponde con el Código Binario
1001010110 que en el sistema decimal corresponde con el número 598.
Haciendo la diferencia de estos dos números encontramos la respuesta a la
primera pregunta: 598-246=352, y para dar respuesta a la segunda
pregunta, tenemos que saber cuantas veces se ha movido cada disco tras
598 movimientos y también tras 246 movimientos:
598-246=(1+1+2+5+9+19+37+75+150+299)-(0+0+1+2+4+8+15+31+62+123)=
=(1-0)+(1-0)+(2-1)+(5-2)+(9-4)+(19-8)+(37-15)+(75-31)+(150-62)+(299-123)=
=1+1+1+3+5+11+22+44+88+176=352. Cada uno de los sumandos nos da las
veces que se han movido los discos 10, 9,8, 7, 6, …Ver tablas:
Página de 24 38
Nº de Movimientos en TH10
512 256 128 64 32 16 8 4 2 1
Total Mov.246 0 0 1 1 1 1 0 1 1 0
Nº de Mov. TH 10 0 0 1 2 4 8 15 31 62 123 246
Resto al div. por 3 0 0 1 2 1 2 0 1 2 0
Está en... A A C C C C A B B A
Disco 10 9 8 7 6 5 4 3 2 1
Nº de Movimientos en TH10
512 256 128 64 32 16 8 4 2 1
Total Mov.598 1 0 0 1 0 1 0 1 1 0
Nº de Mov. TH 10 1 1 2 5 9 19 37 75 150 299 598
Resto al div. por 3 1 1 2 2 0 1 1 0 0 2
Está en... C B B C A B C A A C
Disco 10 9 8 7 6 5 4 3 2 1
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Ejercicio 3 1.- Obtén los códigos binarios de las siguientes posiciones en
TH10
a) b)
2.- Obtén los dibujos correspondientes en TH10 de los códigos 1010101010
y 0101010101
Respuesta
1.- a) 1000100001 b) 0111011110
2.-
1010101010 0101010101
Posiciones complementarias: Decimos que en TH10 dos posiciones son
complementarias cuando en el código binario de una y otra se
intercambian los unos y los ceros. Por ejemplo los códigos 1010101010 y
0101010101 son posiciones complementarias.
Veamos otra forma de obtener el número de movimientos en TH10. En
la siguiente tabla se exponen el número de movimientos que hace cada
disco en TH10:
Página de 25 38
2
3
7 4
1 8 5
6 9 10
A B C
2
3
4 7
5 8 1
10 9 6
A B C
1
2 3 4
5 6 7
8 9 10
A B C
1
4 3 2
7 6 5
10 9 8
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Si a la tabla anterior añadimos una fila con el código del número de
movimientos en TH10 obtenemos en la última columna el número de
movimientos de cada disco:
Página de 26 38
DiscosNº de
Movimientos de cada disco
1 256 128 64 32 16 8 4 2 1 1 512
2 128 64 32 16 8 4 2 1 1 256
3 64 32 16 8 4 2 1 1 128
4 32 16 8 4 2 1 1 64
5 16 8 4 2 1 1 32
6 8 4 2 1 1 16
7 4 2 1 1 8
8 2 1 1 4
9 1 1 2
10 1 1
512 256 128 64 32 16 8 4 2 1 1023
0 0 1 2 5 10 20 40 80 161
Nº de Movimientos en
TH10
512 256 128 64 32 16 8 4 2 1Nº de
Movimientos de cada disco322 0 1 0 1 0 0 0 0 1 0
1 256 128 64 32 16 8 4 2 1 1 161
2 128 64 32 16 8 4 2 1 1 81
3 64 32 16 8 4 2 1 1 40
4 32 16 8 4 2 1 1 20
5 16 8 4 2 1 1 10
6 8 4 2 1 1 5
7 4 2 1 1 3
8 2 1 1 1
9 1 1 1
10 1 0
TOTAL DE MOVIMIENTOS 322
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
En la última columna los números que aparecen son la suma de las
potencias de 2 que tienen arriba (en la primera fila) un 1. Así el número
322 resulta de sumar por un lado 256+64+2 (010100010 código binario) y por
otro: (128+32+1)+(64+16+1)+(32+8)+(16+4)+(8+2)+(4+1)+(2+1)+(1)+(1)+(0), cada
paréntesis nos da el número de movimientos del disco 1, 2, 3, 4, …, 10 que
son: 161+81+40+20+10+5+3+1+1+0=322
Lo visto en la tabla anterior nos motiva la definición de Matriz de
Movimientos de los Discos en THn:
Se define la Matriz de Movimientos de THn como la Matriz
cuadrada de orden n triangular superior siguiente:
Por ejemplo la Matriz de Movimientos de TH5 sería:
Esta Matriz nos sirve para obtener el número de movimientos de
cada uno de los discos cuando pasamos a Binario el número total de
movimientos: veamos un ejemplo: ¿Cuántas veces se ha movido cada disco
en TH5 después de 17 movimientos totales?
Pasamos 17 a Binario: 10001, multiplicamos la matriz de
Movimientos de TH5 por el vector columna
Página de 27 38
2n−2 2n−3 ... 21 1 12n−3 2n−4 ... 1 1 0! ! 1 1 0 !21 1 1 0 ! 01 1 0 ! 0 01 0 0 0 0 0
⎛
⎝
⎜⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟⎟
23 22 21 1 122 21 1 1 021 1 1 0 01 1 0 0 01 0 0 0 0
⎛
⎝
⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟
23 22 21 1 122 21 1 1 021 1 1 0 01 1 0 0 01 0 0 0 0
⎛
⎝
⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟
10001
⎛
⎝
⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟
=
23 +1222111
⎛
⎝
⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟
=
94211
⎛
⎝
⎜⎜⎜⎜⎜⎜
⎞
⎠
⎟⎟⎟⎟⎟⎟
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
LA TORRE DE HANOI Y EL SISTEMA TERNARIO
Hasta ahora nos hemos movido siempre dentro de la línea recta que
une la posición inicial con la final, siguiendo una secuencia única de
movimientos determinada por El Principio de paridad: “Un disco nunca
toca a otro de la misma paridad”. Pero las reglas del juego permiten otras
posibilidades, por ejemplo, que haya discos juntos de la misma paridad. Es
decir, hay muchos más movimientos y posiciones (o estados) que los vistos
hasta ahora. Un estado queda definido por el poste donde está cada disco.
Por ejemplo, en una torre de 3 discos, CBB sería el estado en el cual el disco
3 está en C, y los discos 2 y 1 están en B. Como en cada poste los discos están
ordenados, esta información es suficiente. Los distintos estados (posiciones
de los discos en los postes) se pueden codificar con el sistema de numeración
ternario de la siguiente forma:
Asignamos al poste origen A el dígito 0, al poste auxiliar B el dígito 1,
y al poste destino C el dígito 2. Si adoptamos la regla de que al primer
dígito de un código ternario es la posición del disco n en THn, la siguiente
posición la del disco n-1, y así sucesivamente hasta el disco 1, tendríamos
que la secuencia CBB en TH3 corresponde con el código ternario 211. Como
ejemplo asignamos el código ternario a una posiciones de TH5:
Código Ternario: 21021
Es evidente que la posición inicial corresponde con el código ternario
00000 y la posición final con el código 22222.
Página de 28 38
1 2
3 4 5
A B C
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
En THn hay en total 3n estados posibles y todos ellos son accesibles
desde cualquier posición inicial. El conjunto de todos los estados y
movimientos se puede representar mediante un grafo, donde los puntos
representan los estados y las líneas, los movimientos (cada línea representa
en realidad dos movimientos, uno en cada sentido). La más simple de las
Torres de Hanoi, la de un solo disco, tiene este grafo.
Grafo para TH1
Hay tres estados: 0, 1 y 2. Para ir del estado inicial (0) al final (2) basta un
movimiento, aunque si lo preferimos podemos dar un rodeo pasando por el
estado 1. El camino más corto para ir del estado inicial al final se
representa de rojo y el más largo de negro. He aquí el grafo de la Torre de
2 discos:
Grafo para TH2
Como se puede observar en esta figura, todas las posibles posiciones
del juego están conectadas. El lado derecho del triángulo nos sigue
presentando la solución óptima (en tres movimientos, por supuesto). Para
encontrar el camino pésimo debemos recorrer todo el grafo sin pasar dos
veces por el mismo vértice. Esto es siempre posible. Para ello, saliendo desde
00, recorremos el primer triángulo en sentido horario, terminando en 02.
Luego bajamos al vértice 12 y recorremos ese triángulo en sentido
antihorario, terminando en 10. Llegamos luego al vértice 20 y recorremos
ese triángulo en sentido horario. Este recorrido, dicho sea para que Euler
repose tranquilo, como se ve, pasa por todos los puntos, pero no por todas
las aristas, es decir, el juego pasa por todas las posiciones posibles pero no se Página de 29 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
realizan todos los movimientos posibles. Si quisiéramos, además, realizar
todos los movimientos posibles una sola vez, habría que recorrer el grafo
pasando por todas las aristas una sola vez, cosa que es imposible pues
existen más de dos vértices de índice impar lo que imposibilita, como Euler
nos enseñó, tal recorrido. Agotar todos los movimientos exigiría repetir
alguno de ellos. Tal camino merecería ser llamado el peor camino.
El grafo para el juego TH2 puede ser entendido como un gran
triángulo equilátero que tiene en cada vértice sendos triángulos equiláteros
colocados en su interior. Los lados de los triángulos pequeños representan
los movimientos del disco pequeño y los tramos no usados de los lados del
grande representan los movimientos del disco grande. Es decir, el grafo de
TH2 consiste en un triángulo que tiene en cada vértice un grafo de TH1.
Esta forma recursiva de mirar el grafo nos permitirá construir los
siguientes. En efecto, el grafo de TH3 es un triángulo que tiene en cada
vértice un grafo de TH2.
Grafo para TH3
Página de 30 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Cada lado de un triángulo pequeño representa un movimiento del
disco 1 (en negro), cada lado de un triángulo que contiene a tres triángulos
pequeños que no pertenezca a un triángulo pequeño representa un
movimiento del disco 2 (en naranja), cada lado del triángulo que contiene a
9 triángulos pequeños y no a los lados de los triángulos menores representa
los movimientos del disco 3 (en rojo) y cada lado del triángulo grande que
no pertenezca a un triángulo menor representa los movimientos del disco 4
(en azul).
Grafo para TH4
Grafo para TH4
Movimientos de los discos y grafo de TH4
Página de 31 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
La forma de encontrar el camino pésimo en este grafo es también recurrente y se puede encontrar de manera sencilla si recorremos las siguientes etapas:
i) Si n es par recorremos el primer triángulo pequeño en sentido horario. Si n es impar lo recorremos en sentido antihorario.
ii) Pasamos al único triángulo pequeño accesible desde el fin del recorrido anterior y lo recorremos en el sentido contrario al anterior.
iii) Repetimos el paso ii tantas veces como sea necesario hasta llegar a la última posición.
Camino Pésimo en el grafo de TH4
Página de 32 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
A continuación se da el grafo de TH5 sin indicar los códigos. Un buen ejercicio sería, precisamente, ponérselos.
Grafo de TH5
El grafo de orden n se construye a partir del de orden n−1: el grafo de orden n está formado por tres grafos de orden n−1 conectados por tres líneas correspondientes a movimientos del disco n. Parece que fue Ian Stewart el primero que describió el grafo de la Torre de Hanoi de esta forma en su libro Another Fine Math You've Got Me Into (no traducido al español). A medida que aumenta el valor de n, el grafo se parece cada vez más a un conocido fractal llamado Triángulo de Sierpinski.
Página de 33 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Por último vamos a ver en el grafo para n = 5, el largo camino que pasa por todas las posiciones sólo una vez (son pasos). Se forma ya una figura bastante impresionante:
Cambiando la posición inicial
Normalmente se presenta la Torre de Hanoi con una posición inicial fija, pero nada impide que, partamos de una posición aleatoria. Es como si nos dejaran en un punto cualquiera del grafo y tuviéramos que llegar a la meta (que sigue estando abajo a la derecha) por el camino más corto. El grafo de orden 5 será suficiente para ilustrarlo. Encuentra el camino desde el punto azul hasta el rojo por el camino mas corto.
35 −1=242
Página de 34 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Aunque la solución es fácil, un giro de 60 grados hacia la derecha la hace parecer aún más obvia. Simplemente hay que «dejarse caer». En el siguiente dibujo, la línea roja podría representar una corriente de agua cayendo por una red de tuberías. La conocida distancia de 2n−1 es máxima, es decir, la posición inicial típica está a la máxima distancia posible de la final.
Página de 35 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Esta forma de mirar el grafo nos ayuda también a agrupar las posiciones iniciales por distancias al objetivo. Todos los puntos que están a la misma altura están alejados de la posición final el mismo número de movimientos.
Página de 36 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Si la longitud del lado de cada triángulo pequeño es 1 ¿qué longitud tienen esas dos trayectorias?
Es obvio que la longitud del triángulo grande es ; por tanto las dos trayectorias rojas tienen la misma longitud y es 29 (comprobarlo).
31=25 −1
Página de 37 38
La torre de Hanoi: el sistema binario y ternario Pablo Viedma
Referencias Bibliográficas
- Alegría, Pedro, Fernández, Santiago, Ibáñez, Raúl, Lekuona, Goyo: Las Matemáticas en las bibliotecas escolares. Juegos didácticos para el programa BBK-Matika, Bilbao (http://www.divulgamat.net).
- Berlekamp, Elwyn R., Conway, John H., y Guy, Richard K., Winnings ways for your Mathematical Plays, 4 vols., 2ª ed., Wellesley, MA, 2001-2004.
- Gardner, Martin, Carnaval matemático, Madrid, Alianza Editorial, 1992.
- Serrano Mora, Antonio Javier (2006): La Torre de Hanoi (http://olmo.pntic.mec.es/~aserra10/articulos/hanoi.html).
- Valeiras, Rodolfo: artículo sobre la torre de Hanoi disponible en www.rodoval.com/heureka/hanoi/index.html
- Viedma Carrillo, Pablo (2014): La Torre de Hanoi y el Sistema Binario.
Página de 38 38