Cómo crear un cuadrado mágico

Hay muchos algoritmos diferentes para construir cuadrados mágicos, Wikipedia y Google son buenos puntos de partida si los busca.

A continuación, describiré uno que es realmente fácil de recordar y que se puede usar para construir un cuadrado mágico de cualquier tamaño extraño .

Deje que [math] n [/ math] sea un entero impar positivo. Vamos a construir un cuadrado mágico [matemático] n \ veces n [/ matemático] que contiene los primeros enteros positivos [matemáticos] n ^ 2 [/ matemáticos]. Mostraré un ejemplo de la construcción para [matemáticas] n = 5 [/ matemáticas].

Imagine que está escribiendo los números del 1 al [matemático] n ^ 2 [/ matemático] en una cuadrícula [matemática] n \ veces n [/ matemático], fila por fila:


En cambio, haga lo mismo pero a lo largo de las diagonales, como si girara el cuadrado de arriba 45 grados hacia la izquierda. Debería obtener lo siguiente:
Ahora, este no es el cuadrado [math] n \ times n [/ math] que queremos, pero ya casi estamos allí. La figura anterior contiene un cuadrado [math] n \ times n [/ math], es solo que algunos de los números están afuera. Mira:

Todo lo que tenemos que hacer para terminar nuestro cuadrado mágico es mover esos números restantes del exterior al cuadrado. Afortunadamente, los cuatro “triángulos” que están en el exterior encajan exactamente en los espacios vacíos dentro del cuadrado, de la siguiente manera:
Aquí está el cuadrado mágico terminado, después de movernos en los otros tres “triángulos”:
Puede verificar que cada fila, cada columna y cada diagonal principal tengan la misma suma: 65.


Algunos comentarios más sobre la construcción anterior:

Aquí hay una implementación simple en Python:

n = int( input() ) h = (n-1)//2
A = [ [ 0 for c in range(n) ] for r in range(n) ] for r in range(n):
for c in range(n):
A[ (r+ch)%n ][ (r-c+h)%n ] = r*n+c+1 for r in range(n):
print(' '.join( '{:4d}'.format(x) for x in A[r] ))

n = int( input() ) h = (n-1)//2
A = [ [ 0 for c in range(n) ] for r in range(n) ] for r in range(n):
for c in range(n):
A[ (r+ch)%n ][ (r-c+h)%n ] = r*n+c+1 for r in range(n):
print(' '.join( '{:4d}'.format(x) for x in A[r] ))

n = int( input() ) h = (n-1)//2
A = [ [ 0 for c in range(n) ] for r in range(n) ] for r in range(n):
for c in range(n):
A[ (r+ch)%n ][ (r-c+h)%n ] = r*n+c+1 for r in range(n):
print(' '.join( '{:4d}'.format(x) for x in A[r] ))

n = int( input() ) h = (n-1)//2
A = [ [ 0 for c in range(n) ] for r in range(n) ] for r in range(n):
for c in range(n):
A[ (r+ch)%n ][ (r-c+h)%n ] = r*n+c+1 for r in range(n):
print(' '.join( '{:4d}'.format(x) for x in A[r] ))

Una cosa realmente interesante es que el algoritmo puede verse como tomar la cuadrícula girada (que se muestra en la segunda imagen) y colocarla en un toro [matemático] n \ veces n [/ matemático].

Para una prueba simple de por qué funciona el algoritmo, es mejor llenar la cuadrícula con los números del 0 al [matemático] n ^ 2-1 [/ matemático]. Cada uno de estos números se puede escribir en la forma [matemática] an + b [/ matemática] para [matemática] 0 \ leq a, b <n [/ matemática]. Elija cualquier fila o columna de la cuadrícula resultante. Debería ver fácilmente que no hay dos números en esa fila / columna que tengan el mismo valor de [matemáticas] a [/ matemáticas], y que no haya dos números que tengan el mismo valor de [matemáticas] b [/ matemáticas]. Se deduce que su suma es siempre [matemática] (0 + 1 + \ cdots + (n-1)) \ cdot (n + 1) [/ math].

Los cuadrados mágicos con números impares son los más fáciles. Hay un método simple y fácil de recordar. Comencemos con un cuadrado de 3 x 3:

  • Comience con 1 en el cuadro central superior
  • Muévase diagonalmente hacia arriba una fila y hacia la derecha una columna y complete 2. Si el cuadro está fuera del cuadrado, complete el extremo opuesto del cuadrado.
  • Continúe con la siguiente fila número uno hacia arriba y una columna hacia la derecha. Si el siguiente cuadro ya está lleno, mueva 1 fila hacia abajo desde el último número.
  • Repita hasta que termine de llenar el cuadrado con los números 1-9. Ver ejemplo a continuación:

La “magia” de los cuadrados mágicos es que las sumas de filas, columnas y diagonales son todas iguales al número mediano multiplicado por el número de unidades de sus lados, en este caso 5 x 3 = 15.

Ahora aplique el mismo método a un cuadrado de 5 x 5:

Las sumas de cada fila, columna y diagonales son 13 x 5 = 65.

Incluso los cuadrados mágicos numerados son un poco complicados. Veamos el cuadrado de 4 x 4.

  • Comience completando el cuadrado secuencialmente desde la esquina superior izquierda, a través de la fila superior, luego baje fila por fila hasta completar el cuadrado.
  • Identifica los números en los cuadros a lo largo de las dos diagonales.
  • Invierta las cajas usando el centro del cuadrado como punto de pivote.

Voila! Las sumas de las filas, columnas y diagonales son 8.5 x 4 = 34, siendo 8.5 el punto medio de la serie del 1 al 16.

El mismo enfoque para el cuadrado de 4 x 4 se puede aplicar a otros cuadrados doblemente pares, como 8 x 8, 12 x 12 o 16 x 16 cuadrados. Los cuadrados pares impares, como 6 x 6, 10 x 10 o 14 x 14 cuadrados requieren un enfoque híbrido. Esencialmente, tratarías un cuadrado de 6 x 6 como cuatro cuadrados de 3 x 3, y un cuadrado de 10 x 10 como cuatro cuadrados de 5 x 5. ¡Juegue con él y vea qué puede encontrar!

Una vez que tenga todos los patrones hacia abajo para los cuadrados mágicos basados ​​en la suma, podemos pasar a los cuadrados mágicos basados ​​en la multiplicación. ¡Vea si puede completar un cuadrado mágico de 3 x 3 con los productos de cada fila, columna y diagonal, todos salen en el mismo número! Pista: el truco está en los exponentes.

Existen diferentes técnicas incluso para cuadrados mágicos, en los que no. de cuadrados en el lado es par, por ejemplo, 4 × 4, y cuadrados mágicos impares, en los que el no. de cuadrados en el lado es impar, por ejemplo, 3 × 3.

En caso de cuadrados mágicos pares, los números se escriben del 1 al n en orden, donde ‘n’ es el no total. de cuadrados. entonces obtenemos el cuadrado mágico requerido intercambiando el número en diagonales.

En el caso de cuadrados mágicos impares, 1 se escribe primero en el cuadrado del medio de la primera fila, luego los números se completan con la siguiente regla:
1. los números se completan en la dirección de la diagonal superior derecha del predecesor.
2. si el cuadrado diagonal superior derecho ya está lleno, entonces el cuadrado de abajo está lleno.
Esto se hace hasta que se llena todo el cuadrado.

Puede obtener técnicas más detalladas con diagramas en el cuadrado mágico “artículo de Wikipedia.

DEJEMOS HACER POR LA CAJA 3X3 PRIMERO
Tome el centro de la primera fila. Coloque 1 allí.
Sigue la regla ARRIBA – DERECHA.
Ahora sube y luego a la derecha. Aterrizarás en la parte superior de la tercera columna. Así que vaya a la posición más baja. Coloque 2 allí.

De nuevo ARRIBA y luego DERECHA. Llegarás a la segunda fila. Así que ve al extremo izquierdo de la segunda fila. Pon 3 allí.

Siga ARRIBA y luego DERECHA.
Llegará a la casilla que ya está llena. En ese caso, toma la casilla justo debajo de donde empezaste.
Ahora continúe hasta que llegue.
SIGA LA MISMA REGLA PARA CADA CUADRADO MÁGICO. RECUERDE EL SUQARE MÁGICO SÓLO ES POSIBLE EN CUADROS DE NÚMERAS Y CUADROS DE NÚMEROS EXTRAÑOS.

El uso de números negativos simplifica la lógica de construir el cuadrado mágico 3 × 3. La suma de vertical, horizontal y diagonal es 0, por lo que los números son simétricos con respecto al dígito 0. Si agrega ahora 5 en cada dígito, entonces Consigue el clásico cuadrado mágico. Pero no pude encontrar una idea similar para cuadrados mágicos de orden superior.

Encontré un método rudimentario Pero no lo llamaré un algoritmo sistemático Pero seguramente funciona para un cuadrado de 3 * 3

(1) toma un número y escríbelo en la esquina superior izquierda

(2) Omita un cuadrado y baje, agregue 4 al número ingresado previamente e ingrese el número al cuadrado

(3) Omita un cuadrado y agregue 2 para numerar el número en la esquina adyacente.

(4) A partir de ahí, omita un cuadrado reste 4 de la esquina anterior

(5) Agregue un número en las diagonales, divídalas por 2 ingrese ese número en el cuadrado medio.

(6) Agregue los elementos diagonales que le darán su suma

(7) Determine las otras celdas desconocidas restando la suma de celdas conocidas de la suma mágica.

Esto funciona bastante bien para una cuadrícula de 3 * 3.

Aquí podemos ver cómo se crea un cuadrado mágico 3 × 3 y la lógica detrás del cuadrado mágico. El mismo procedimiento se puede aplicar a otros cuadrados. Es un método fundamental básico. en un cuadrado mágico 3 × 3 tenemos que organizar 9 números para que la suma en cualquier fila o columna y la suma de los diagnósticos sean iguales. si tomamos números del 1 al 9 y si organizamos en un cuadrado mágico 3 × 3 obtendremos una suma mágica = 15. Hay una buena lógica detrás del cuadrado mágico. Para saber más sobre la lógica detrás del cuadrado mágico, puede visitar el siguiente blogpot: LÓGICA DETRÁS DEL CUADRADO MÁGICO.

Después de leer el artículo anterior, podemos entender bien cómo se crea el cuadrado mágico y cuál es la lógica fundamental.

Consulte los siguientes enlaces para obtener instrucciones paso a paso sobre la creación de cuadrados mágicos.

Cuadrados mágicos numerados impares

Cuadrados mágicos numerados incluso individualmente

Cuadrado mágico doblemente numerado

  • A continuación se muestra el enlace de un video que muestra un truco simple para hacer un cuadrado mágico como el (Sir Srinivas Ramanujan Magic Square):
  • Para saber qué sucede detrás de escena, lea esta publicación: Sir Srinivas Ramanujan Magic Square

Realmente no hay nada … como resolver un cuadrado mágico … Hay una forma de crear esos cuadrados mágicos … que tienen un número impar. de filas y columnas … Y hay una forma específica de crearlo … que consiste en escribir progresivamente los números en diagonal a la izquierda hasta que encontremos el final y específicamente movernos hacia abajo de la fila o cambiar al inicio de esa celda de ese fila … Sí … sé que suena, realmente ambiguo y vago, pero esta es la forma en que incluso creamos cuadrados mágicos de gran dimensión (números impares) …

Mire este video para ver un simple truco sobre cómo crear un cuadrado mágico. Es realmente asombroso

Tutorial de bricolaje: aprende a crear un cuadrado mágico en solo 2 minutos, con trucos simples …

Este sitio tiene una explicación clara sobre la construcción de cuadrados mágicos pares e impares. http://nrich.maths.org/1337

Esto podría ser útil para cuadrados de orden impar:
Cómo hacer un cuadrado mágico de orden impar

También puede echar un vistazo a esto:
https://www.math.hmc.edu/funfact

A continuación, rellene el siguiente número, si está rellenado llénelo por encima de esa posición,
Sigue llenando de manera circular

Aplicable solo al tamaño impar de la matriz