El principio de construcción del cuadrado mágico
En "La leyenda de los héroes del cóndor", Guo y Huang fueron perseguidos por Qiu Qianren hasta el Estanque del Dragón Negro y se escondieron en la cabaña de Yinggu. Yinggu hizo una pregunta: complete los números del 1 al 9 en una tabla con tres filas y tres columnas, y las sumas en cada fila, cada columna y las dos diagonales deben ser iguales. Esta pregunta había dejado perpleja a la tía Ying durante más de diez años, pero Huang Rong la respondió al instante. 492357816Este es el cuadrado mágico plano de tercer orden más simple. Debido a la inteligencia y diversión del cuadrado mágico, muchos juegos y juguetes están relacionados con el cuadrado mágico, como atrapar y soltar, y el hexaedro con el que jugamos habitualmente, que también se han convertido en problemas habituales a la hora de aprender a programar.
El cuadrado mágico, también conocido como diagrama vertical y horizontal y diagrama de los nueve palacios, se registró por primera vez en Luoshu en la antigua China. Cuando Xia Yu estaba controlando las inundaciones, una tortuga emergió del río cerca de Luoyang, Henan, con una figura extraña en su espalda. Los antiguos creían que era auspicioso, lo que indicaba que el rey Xia Yu controlaría por completo la inundación. Las generaciones posteriores lo llamaron Luoshu o Hetu, también llamado Heluotu.
Yang Hui, un matemático de la dinastía Song del Sur, introdujo este método en su libro "El algoritmo para captar cosas extrañas de la antigüedad": simplemente coloque los nueve números naturales en diagonal en orden ascendente, de pequeño a grande, y luego coloque los números superior e inferior. Intercambie los dos números, y también los números izquierdo y derecho. Finalmente, empuje los cuatro números del medio hacia afuera y aparecerá el cuadrado mágico; (Extraído del "Diccionario de Matemáticas Interesantes")
El cuadrado mágico más simple es el cuadrado mágico plano, también los hay tridimensionales, cuadrados mágicos de orden superior, etc. Muchos matemáticos en el mundo todavía están estudiando cuadrados mágicos tridimensionales y cuadrados mágicos de orden superior, y solo discuten cuadrados mágicos planos.
La construcción del cuadrado mágico plano se divide en tres situaciones: N es un número impar, N es múltiplo de 4 y N son otros números pares (en forma de 4n 2)
1, N Cuando es un número impar, es el más simple:
⑴ Pon 1 en la columna del medio de la primera fila
⑵ Comenzando desde 2 y; que termina en n×n, los números se almacenan de acuerdo con las siguientes reglas:
Caminar en una dirección de 45°, como hacia arriba y hacia la derecha
El número de filas donde cada el número almacenado se reduce en 1 y el número de columnas aumenta en 1 en comparación con el número anterior
⑶ Si el rango de filas y columnas excede el rango de la matriz, realice el ajuste.
Por ejemplo, 1 está en la fila 1, entonces 2 debe colocarse en la fila inferior y el número de columnas también se incrementa en 1
(4) Si lo hay; ya es un número en la posición determinada de acuerdo con las reglas anteriores, o está arriba. Cuando un número está en la fila 1 y la columna n,
coloque el siguiente número debajo del número anterior.
2. Cuando N es múltiplo de 4
Se utiliza el método de intercambio de elementos simétrico.
Primero complete los números del 1 al n×n en la matriz de arriba a abajo y de izquierda a derecha.
Luego coloque los números en todas las matrices subcuadradas de 4×4 del cuadrado. matriz. Los números en las dos posiciones diagonales se intercambian simétricamente con respecto al centro de la matriz cuadrada, es decir, a(i, j) se intercambia con a(n 1-i, n 1-j), y todos los demás. Las posiciones son El número permanece sin cambios.
(O puede mantener las diagonales sin cambios e intercambiar otras posiciones simétricamente)
**El método anterior solo es adecuado para n=4**
3. Cuando N es otro número par
Cuando n es un número par que no es múltiplo de 4 (es decir, 4n de forma 2): Primero descomponga la matriz cuadrada grande en 4 números impares (2m 1er orden) matrices subcuadradas.
De acuerdo con el cuadrado mágico de orden impar anterior, asigne los valores correspondientes a las cuatro matrices cuadradas descompuestas.
De pequeña a grande, son la submatriz superior izquierda (i), la submatriz inferior derecha (i v), la submatriz superior derecha (i 2v), la submatriz inferior izquierda (i 3v),
Es decir, los elementos correspondientes de las cuatro matrices subcuadradas difieren en v, donde v =n*n/4
Las cuatro submatrices se organizan de pequeña a grande como ① ③
④ ②
Luego se intercambian los elementos correspondientes: a(i, j) y a(i u, j) están en el mismo intercambio correspondiente de columnas (jlt; t o jgt; n-t 2),
a(t-1, 0) y a( t u-1, 0); a(t-1, t-1 ) y a(t u-1, t-1) intercambian dos pares de elementos
donde u=n/2, t =(n 2)/4. El intercambio anterior hace que los elementos en las filas, columnas y diagonales sean iguales.
Implementación del lenguaje C #includestdio.h#includemath.hint?a[256][256]; int?sum; int?check(); ){?int?i,j,n,k,t,p,x;?scanf(d,amp;n);?sum=(n*n 1)*n/2;?if(n2==1 )?//Cuadrado mágico impar ins(n);?if(n4==2)?{?//Cuadrado mágico par e impar k=n/2; for(i=0;?ilt; k ;?i )?for(j=0;?jlt;k;?j ){a[i][j k]=a[i][j] 2*k*k a[i k][j]= a [i][j] 3*k*k; a[i k][j k]=a[i][j] k*k;?}t=(n-2)/4; ilt;k;?i)?for(j=0;?jlt;k;?j){if((jlt;t)amp;amp;(ilt;t)){?p=a[i][ j ];?a[i][j]=a[i k][j];?a[i k][j]=p;}if((jlt;t)amp;amp;(igt;k-t-1) ) {?p=a[i][j];?a[i][j]=a[i k][j];?a[i k][j]=p;}if((igt;=tamp; amp ;ilt;=k-t-1)amp;amp;(jgt;=tamp;amp;jlt;t*2)){?p=a[i][j];?a[i][j]=a [ i k][j];?a[i k][j]=p;}if(jgt;1amp;amp;jlt;=t){?p=a[i][j k];?a[i][ j k ]=a[i k][j k];?a[i k][j k]=p;}?}?}?if(n4==0)?{?//Cuadrado mágico doble par x=1; (i =0;?ilt;n;?i )?for(j=0;?jlt;n;?j )a[i][j]=x ;for(i=0;?ilt;n;? i ) ?for(j=0;?jlt;n;?j){if(i4==0amp;amp;abs(i-j)4==0)?for(k=0;?klt;4;?k )a [i k][j k]=n*n-a[i k][j k] 1;else?if(i4==3amp;amp;(i j)4==3)?for(k=0;?klt;4 ;? k )a[i-k][j k]=n*n-a[i-k][j k] 1;?}?}?if(check(n)==1){for(i=0;?ilt;n; ?i ){?for(j=0;?jlt;n;?j )printf(5d,a[i][j]);?printf(\n);}?}}int?check(int?n )? {?//Comprueba si es un cuadrado mágico?int?i,j,sum1=0,sum2;?for(i=0;?ilt;n;?i){for(j=0;?jlt ;n;? j )?sum1 =a[i][j];if(suma1!=suma)?return?0;sum1=0;?}?for(i=0;?ilt;n;?i ) {for(j =0;?jlt;n;?j )?sum1 =a[i][j];if(suma1!=suma)?return?0;sum1=0;?}?for(suma1=0 ,suma2=0 ,i=0,j=0;?ilt;n;?i,j){suma1 =a[i][j];suma2 =a[i][n-j-1];?
}?if(sum1!=sum)return?0;?if(sum2!=sum)return?0;?elsereturn?1;}void?ins(int?n)?{?//Entrada de magia par e impar cuadrados ?int?x,y,m;?x=0;?y=n/2;?for(m=1;?mlt;=n*n;?m){a[x][y]=m ; si(mn!=0){?x--;?y;?if(xlt;0)x=x n;?if(y==n)y=n-y;}else{?x;?if(x = =n)x=x-n;}?}}//?c implementación del lenguaje//(1) Encuentra el cuadrado mágico impar #includelt; #includelt.hgt; ?n , x, y, tot=0, i, j, a[100][100]={0};?coutlt;lt;Ingrese un número imparlt;lt;endl;?cingt;gt;n;? a[ i=n/2][j=0]= tot;?i--;?j--;?mientras(totlt;=n*n){ilt;0?i=n-1:i=i ;jlt ;0?j=n-1:j=j;if(a[i][j]){?i=x;?j=y 1;}a[i][j]= tot;x= i; y=j;i--;j--;?}?for(i=0;?ilt;n;?i){for(j=0;?jlt;n;?j )?coutlt;lt ;setw (3)lt;lt;a[i][j];coutlt;lt;endl;?}?return?0;}//(2) Encuentra el cuadrado mágico singular e par#includelt;iostream.hgt; #includelt;iomanip .hgt;int?main(){?int?n, i=0, j=0, a[100][100], tot=0;?coutlt;lt;Ingrese un múltiplo de 4lt; lt;endl; ?cingt;gt;n;?for(i=0;?ilt;n;?i )for(j=0;?jlt;n;?j ){?a[i][j]= tot;}? para(i=0;?ilt;n;?i){para(j=0;?jlt;n;?j){?if(i4==j4||i4 j4==3)a [i][ j]=n*n 1-a[i][j];}?}?for(i=0;?ilt;n;?i){for(j=0;?jlt;n; ?j){ ?coutlt;lt;setw(4)lt;lt;a[i][j];}coutlt;lt;endl;?}?return?0;}cuadrado mágico de orden impar
Cuando n es Cuando el número es impar, llamamos al cuadrado mágico un cuadrado mágico de orden impar. Se puede realizar utilizando el método Merzirac y el método Loubere. Según mi investigación, descubrí que se pueden construir aún más fórmulas mágicas de fantasía utilizando el movimiento del caballo de ajedrez, por eso se llama método del caballo.
Cuadrado mágico de orden par
Cuando n es un número par, llamamos al cuadrado mágico un cuadrado mágico de orden par. Cuando n es divisible por 4, llamamos al cuadrado mágico de orden par un cuadrado mágico doble par; cuando n no es divisible por 4, llamamos al cuadrado mágico de orden par un cuadrado mágico par simple; Método de alquiler, Strachey y YinMagic se pueden utilizar para implementarlo. Strachey es un modelo par único. Modifiqué el modelo doble par (orden 4m) e hice otro modelo matemático factible, llamado Spring. YinMagic es un modelo que diseñé en 2002. Puede generar cualquier cuadrado mágico de orden par.
Antes de completar el cuadrado mágico, hacemos el siguiente acuerdo: si los números completados exceden el rango del cuadrado mágico, el cuadrado mágico se considerará como un gráfico que se puede extender infinitamente, como se muestra a continuación:
El método Merzirac genera cuadrados mágicos de orden impar
Coloque 1 en el cuadrado en el centro de la primera fila, complete 2, 3, 4... hasta el arriba a la derecha en secuencia. Si ya hay números en la esquina superior derecha, desplácese hacia abajo. Continúe para completar un cuadro. Como se muestra a continuación, el cuadrado mágico de quinto orden se genera mediante el método de Merziral: 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 El cuadrado mágico de orden impar se genera mediante el método loubere
Coloca 1 en el cuadrado central un cuadrado hacia arriba, completa 2, 3, 4... en la parte superior derecha por turno. Si ya hay números en la esquina superior derecha, sube dos cuadrados. y continúa completando. Como se muestra a continuación, el cuadrado mágico de quinto orden se genera mediante el método de Louberel: 23 6 19 2 15 10 18 1 14 22 17 5 13 21 9 4 12 25 8 16 11 24 7 20 3 El cuadrado mágico de orden par se genera mediante el Método de contratación
Considere el cuadrado mágico de orden n como una matriz, denotada como A, en la que el número en la fila i y la columna j se denota como a(i,j). Complete 1, 2, 3,..., n en las dos diagonales en A, y luego complete 1, 2, 3,..., n en cada fila, de modo que la suma de los números en cada fila y la columna es n*(n 1)/2 . El método de llenado es: complete la 1.a fila de n a 1, complete la 2.a fila a la n/2.a fila de 1 a (llene n en la 1.a columna de la 2.a fila, complete la 1.a columna en la 2.a fila ), de Las n/2 filas 1 a n se completan de n a 1, y los números en los cuadrados diagonales permanecen sin cambios. El siguiente es el método de llenado para el nivel 6:
1 5 4 3 2 6
6 2 3 4 5 1
1 2 3 4 5 6
p>6 5 3 4 2 1
6 2 4 3 5 1
1 5 4 3 2 6
Lo siguiente es el método de llenado de octavo orden (después de la transposición):
1 8 1 1 8 8 8 1
7 2 2 2 7 7 2 7
6 3 3 3 6 3 6 6
5 4 4 4 4 5 5 5
4 5 5 5 5 4 4 4
3 6 6 6 3 6 3 3 p>
2 7 7 7 2 2 7 2
8 1 8 8 1 1 1 8
Calcule todos los números en A según el siguiente algoritmo para obtener B, donde b(i,j)=n×(a(i,j)-1). Entonces AT B es el cuadrado mágico objetivo
(AT es la matriz transpuesta de A). Como se muestra a continuación, el cuadrado mágico de octavo orden generado por el método Hire:
1 63 6 5 60 59 58 8
56 10 11 12 53 54 15 49
41 18 19 20 45 22 47 48
33 26 27 28 29 38 39 40
32 39 38 36 37 27 26 25
24 47 43 45 20 46 18 17
16 50 54 53 12 11 55 9
57 7 62 61 4 3 2 64
⑴ El método Strachey genera magia única y pareja. cuadrados p>
Representa el cuadrado mágico par y singular de orden n como un cuadrado mágico de 4 m y 2 órdenes. Divídalo en cuatro partes iguales para formar cuatro cuadrados mágicos impares de primer orden de 2 m A, B, C y D como se muestra en la siguiente figura.
A C
D B
A usa de 1 a 2m 1 para completar el cuadrado mágico de orden (2m 1)2; B usa (2m 1)2; 1 a 2 *(2m 1)2 se completa como 2m cuadrado mágico de primer orden; C se completa con 2*(2m 1)2 1 a 3*(2m 1)2 como 2m cuadrado mágico de primer orden; con 3*(2m 1)2 1 A 4*(2m 1)2, complete el cuadrado mágico de primer orden de 2m, tome m celdas en la fila central de A, de las cuales 1 celda es la celda intermedia de la fila; las otras celdas m-1 son arbitrarias y las otras filas están a la izquierda. Tome m columnas en el borde e intercámbielas con los cuadrados correspondientes de D y C se intercambian entre sí en m-1 columnas en el lado derecho; . Como se muestra a continuación, el cuadrado mágico de sexto orden generado por el método Strachey:
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
⑵Primavera generación de métodos Utilice el cuadrado mágico par
Represente el cuadrado mágico par doble de orden n como un cuadrado mágico de orden 4m. Piense en el cuadrado mágico de orden n como una matriz, denotada como A, en la que el número en la fila i y la columna j se denota como a(i,j).
Chelín a(i, j)=(i-1)*n j, es decir, la primera línea se puede llenar con 1, 2, 3,..., n de izquierda a derecha; es decir, la segunda línea se puede completar de izquierda a derecha; de izquierda a derecha, puede completar n 1, n 2, n 3,..., 2n respectivamente;... y luego realizar el intercambio diagonal. Hay dos métodos de intercambio diagonal:
Método 1: Intercambiar los números diagonales en el área superior izquierda donde i j es un número par con los números diagonales en la esquina inferior derecha del cuadrado mágico con el punto central como punto de simetría; reemplazar el área superior derecha donde i j es un número impar se intercambia con los números diagonales en la esquina inferior izquierda del cuadrado mágico con el punto central como punto de simetría; (Solo asegúrate de que no sea par ni impar al mismo tiempo).
Método 2: divide el cuadrado mágico en m*m cuadrados mágicos de cuarto orden y divide los cuadrados diagonales en cada uno de cuarto orden. cuadrado mágico. Los números internos se intercambian con los números diagonales en el cuadrado mágico de enésimo orden con el punto central como punto de simetría.
Como se muestra a continuación, el cuadrado mágico de cuarto orden generado por el método Spring:
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
YinMagic construye un cuadrado mágico de orden par
Primero construye un cuadrado mágico n-2 y luego suma 2n a todos los números que contiene -2, colóquelo en el medio del cuadrado mágico de orden n y luego use este método para completar los números de los bordes. Este método es aplicable a todos los cuadrados mágicos de ngt;4, un modelo matemático construido por mí el 31 de diciembre de 2002. El método YinMagic puede generar incluso cuadrados mágicos de orden 6 o superior. Como se muestra a continuación, el cuadrado mágico de sexto orden generado por el método YinMagic:
10 1 34 33 5 28
29 23 22 11 18 8
30 12 17 24 21 7
2 26 19 14 15 35
31 13 16 25 20 6
9 36 3 4 32 27
El El cuadrado mágico del diablo
Si el cuadrado mágico se considera una figura que se extiende infinitamente, entonces los números en n*n cuadrados adyacentes pueden formar un cuadrado mágico. El cuadrado mágico se llama cuadrado mágico del diablo.
El cuadrado mágico construido con el método del Caballo que estudié es el cuadrado mágico del diablo. El siguiente cuadrado mágico es aún más un cuadrado mágico del diablo, porque para cuatro números cualesquiera en dos filas y dos columnas, su suma siempre es 34. Este cuadrado mágico se puede generar utilizando el método YinMagic.
15 10 3 6
4 5 16 9
14 11 2 7
1 8 13 12
Método de Robert:
1 está en el centro de la fila superior, complete la parte superior derecha en diagonal y complete los cuadros superior e inferior
Saca la derecha. cuadro y la izquierda, y luego complete el cuadro inferior, superior derecho El peso es el mismo.