Ir al contenido principal

Cuadrados mágicos (III): Solución Reto 3

Solución al tercer reto sobre cuadrados mágicos y ajedrez que he puesto recientemente en este blog.

El enunciado del reto decía lo siguiente: Se pide construir un cuadrado mágico de orden 4, 4 filas y cuatro columnas, normal (que contenga todos los números naturales desde el 1 hasta n2, en este caso del 1 al 16) y en el que se "escondan" todas las posibles soluciones al problema de las 4 reinas, es decir, que la suma de las casillas del cuadrado donde se ubicarían las 4 reinas de cada solución dé como resultado su constante mágica, n(n2+1)/2 = 4(17)/2=34.

Solución: Evidentemente, lo primero que hay que hacer es averiguar cuántas soluciones hay al problema de las 4 reinas y cuáles son. Desde luego, aunque sólo sea por el tamaño del tablero, muchas no puede haber.

Quien haya visitado la Wikipedia a través del enlace anterior ya sabrá que el número de soluciones es 2, pero: ¿Cuáles son?.

Esas 2 soluciones se pueden obtener muy fácilmente de forma manual, pero aprovechando el script de python que cree para resolver el reto anterior, adaptado al problema de las 4 reinas:

def busqueda_exhaustiva_soluciones(f):
#------------------------------------------------------------
# Busca todas las soluciones al problema de las 4 reinas.
#------------------------------------------------------------
#
    global s
    c=0
    while c<4:
        if not casilla_amenazada(f,c):
            Dama[f]=c
            if f==3:
                s+=1
                print('[+] Encontrada solución',s,'al problema de las 4 Damas:',Dama)
            else:
               busqueda_exhaustiva_soluciones(f+1)
        c+=1

def casilla_amenazada(f,c):
#------------------------------------------------------------
# Verifica si una casilla está amenazada.
#------------------------------------------------------------
#
    i=0
    while i<f:
        if Dama[i]==c or i-Dama[i]==f-c or i+Dama[i]==f+c:
            return True
        i=i+1
    return False

#
#============================================
# SOLUCIÓN RETO 3: "LOS CUADRADOS MÁGICOS Y EL AJEDREZ (III)".
#============================================
#
global s
f=0
Dama=[5,5,5,5]
#
# Busca todas las soluciones al problema de las 4 reinas.
#
s=0
busqueda_exhaustiva_soluciones(f)
print('--- Total de soluciones encontradas al problema de las 4 Damas:',s)
Veo que, efectivamente, hay sólo 2 soluciones y que éstas son
Como se observa en la figura anterior, además, sólo hay 1 solución esencial, ya que una se obtiene por simetría (reflejo) de la otra (doblar el tablero por la mitad, tanto por el eje horizontal - filas - como vertical - columnas -) y viceversa.

Conocidas ya todas las posibles soluciones, comienzo a construir el cuadrado mágico de 4x4 que las contenga utilizando el método más comúnmente empleado para la construcción de cuadrados mágicos de orden par:

- En primer lugar, dispongo sobre el tablero (cuadrado de 4 filas y 4 columnas), de izquierda a derecha y de arriba a abajo, es decir, completándolo por filas, los números del 1 al 16, de forma consecutiva y sin repetir ninguno de ellos, de la siguiente manera:
- Después, manteniendo los números dispuestos en el subcuadrado central de orden n/2 (en nuestro caso 4/2 = 2) y los cuatro subcuadrados de las esquinas de orden n/4 (en nuestro caso 4/4 = 1), giro el resto de números 180º respecto del centro del cuadrado, o, lo que es lo mismo, los recoloco en orden decreciente, de la siguiente manera:
Y ya tengo un cuadrado mágico de constante mágica 34, pero es que, además, si coloco las dos soluciones al problema de las 4 reinas en sus respectivas casillas (círculo rojo y anaranjado, respectivamente) y sumo las casillas correspondientes a cada solución el resultado también es 34, es decir, esas soluciones se "esconden" en este cuadrado mágico.
3 + 5 + 12 + 14 = 34
2 + 8 + 9 + 15 = 34
Por tanto, ya he obtenido un cuadrado mágico que da solución a este reto, pero voy a ver cuántos puedo obtener de forma manual en muy poco tiempo.

A partir del cuadrado mágico obtenido como solución:

- Intercambio la primera fila (fila 0) con la cuarta (fila 3):
15 + 5 + 12 + 2 = 34
14 + 8 + 9 + 3 = 34
- Intercambio la segunda fila (fila 1) con la tercera (fila 2):
3 + 9 + 8 + 14 = 34
2 + 12 + 5 + 15 = 34
- Intercambio la primera columna (columna 0) con la cuarta (columna 3):
3 + 8 + 9 + 14 = 34
2 + 5 + 12 + 15 = 34
- Intercambio la segunda columna (columna 1) con la tercera (columna 2):
2 + 5 + 12 + 15 = 34
3 + 8 + 9 + 14 = 34
- Intercambio la primera fila (fila 0) con la cuarta (fila 3) y la primera columna (columna 0) con la cuarta (columna 3):
15 + 8 + 9 + 2 = 34
14 + 5 + 12 + 3 = 34
- Intercambio la segunda fila (fila 1) con la tercera (fila 2) y la primera columna (columna 0) con la cuarta(columna 3):
3 + 12 + 5 + 14 = 34
2 + 9 + 8 + 15 = 34
- Intercambio la primera fila (fila 0) con la cuarta (fila 3) y la segunda columna (columna 1) con la tercera (columna 2):
14 + 5 + 12 + 3 = 34
15 + 8 + 9 + 2 = 34
- Intercambio la segunda fila (fila 1) con la tercera (fila 2) y la segunda columna (columna 1) con la tercera (columna 2):
2 + 9 + 8 + 15 = 34
3 + 12 + 5 + 14 = 34
- Intercambio la primera fila (fila 0) con la cuarta (fila 3), la primera columna (columna 0) con la cuarta (columna 3) y la segunda fila (fila 1) con la tercera (fila 2):
15 + 12 + 5 + 2 = 34
14 + 9 + 8 + 3 = 34
Por cierto, ¿A qué me suena este cuadrado mágico (última línea: 4, 15, 14, 1)? Es el cuadrado mágico de Alberto Durero.
Por lo que ya he aprendido otra cosa :): las dos soluciones al problema de las 4 reinas se "esconden" en el cuadrado mágico de Alberto Durero.

- Intercambio la primera fila (fila 0) con la cuarta (fila 3), la segunda columna (columna 1) con la tercera (columna 2) y la segunda fila (fila 1) con la tercera (fila 2):
14 + 9 + 8 + 3 = 34
15 + 12 + 5 + 2 = 34
- Intercambio la primera fila (fila 0) con la cuarta (fila 3), la primera columna (columna 0) con la cuarta (columna 3) y la segunda columna (columna 1) con la tercera (columna 2):
14 + 8 + 9 + 3 = 34
15 + 5 + 12 + 2 = 34
- Intercambio la segunda fila (fila 1) con la tercera (fila 2), la primera columna (columna 0) con la cuarta (columna 3) y la segunda columna (columna 1) con la tercera (columna 2):
2 + 12 + 5 + 15 = 34
3 + 9 + 8 + 14 = 34
Ya decía yo que este reto era "Fácil", lo que creo que queda más que demostrado con los 13 cuadrados mágicos normales construidos en muy poco tiempo que cumplen los requisitos de este desafío, pero hay muchos más: ¿Cuántos y cuáles?. Asunto que dejo para el siguiente reto que voy a proponer a los lectores de este blog.

******** PRÓXIMO RETO
Reto 4:   "Los cuadrados mágicos y el ajedrez (IV)".

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema de

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat

¿Qué significa el emblema de la profesión informática? (I)

Todas o muchas profesiones tienen un emblema que las representa simbólicamente y en el caso de la  informática: " es el establecido en la resolución de 11 de noviembre de 1977  para las titulaciones universitarias superiores de informática, y  está constituido por una figura representando en su parte central  un  núcleo toroidal de ferrita , atravesado por  hilos de lectura,  escritura e inhibición . El núcleo está rodeado por  dos ramas : una  de  laurel , como símbolo de recompensa, y la otra, de  olivo , como  símbolo de sabiduría. La  corona  será la  de la casa real  española,  y bajo el escudo se inscribirá el acrónimo de la organización. ". Veamos los diferentes elementos tomando como ejemplo el emblema del COIIE/EIIEO (Colegio Oficial de Ingenieros en Informática del País Vasco/ Euskadiko Informatikako Ingeniarien Elkargo Ofiziala ) . Pero no sólo el COIIE/EIIEO adopta el emblema establecido en dicha resolución, sino que éste se adopta también como im