Paso 1: El cuadrado mágico simétrica
Hay muchas maneras de construir una plaza mágica, pero sólo le mostraré mío.
Condiciones: La matriz 2D debe ser mayor que 3 y siempre extraño en tamaño.
La función:
f(y) = 2 * x mod tamaño
O
Para x = 0 a tamaño-1
Matriz de ((OffsetX + x) tamaño mod, (OffsetY + 2 * x) mod tamaño) = Nr
siguiente
Ahora tenemos un cuadrado mágico, pero no es simétrica o concéntrica, para que gire 180 grados de la matriz y agregarlos juntos.
Para x = 0 hasta Talla - 1
Para y = 0 a la talla - 1
Matrix(x,y) = Matrix(x,y) + matriz (tamaño - x - 1, tamaño - y - 1)
Siguiente
Siguiente
Entonces la matriz original del espejo y añadir a lo anterior suman.
Para x = 0 hasta Talla - 1
Para y = 0 a la talla - 1
Matrix(x,y) = Matrix(x,y) + matriz (tamaño - x - 1, y)
Siguiente
Siguiente
El resultado es un cuadrado mágico simétrico.
Puede ejecutar un nuevo f(y) = 2 x * mod tamaño encima de la vieja matriz y luego repetir los 180 grados y espejo operación para siempre.
Matriz del mismo tamaño con las mismas operaciones se pueden agregar o restar entre sí. Multplied o dividido con una constante y aún ser simétricos cuadrados mágicos.
Descargar mi Visual Basic 2010 programa y código fuente para jugar.