He tratado con esto algunos meses atrás, y tener esto en algunos garabatos. No sé si esto es de ayuda alguna.
Desde el ansatz (donde m es el horizontal,vertical y diagonal suma)
\begin{array} {rrr|r} & & & m \\
a^2 & b^2 & c^2 & m \\
d^2 & e^2 & f^2 & m \\
g^2 & h^2 & i^2 & m \\
\hline
m&m&m&m
\end{array}
escribir esto como un conjunto de ecuaciones y el uso de Gauss-reducción llegué a la siguiente cuadrado mágico con tres parámetros libres e,i,h
\begin{array} {rrr|r} & & & 3e^2 \\
2e^2-i^2 & 2e^2 -h^2& -e^2 +h^2 + i^2 & 3e^2 \\
-2e^2+h^2+2i^2 & e^2 & 4e^2-h^2-2i^2 & 3e^2 \\
3e^2-h^2-i^2 & h^2 & i^2 & 3e^2 \\
\hline
3e^2&3e^2&3e^2&3e^2
\end{array}
y si recuerdo correctamente he visto, que los parámetros debe ser impar y no divisible por 3 o en otras palabras e^2,i^2,h^2 debe ser congruente con 1 modulo 12 .
Yo no proceder a continuación, sin embargo, tal vez que la representación es de algún interés para usted.
[update2] Aquí es uno más de la información que se me olvidó incluir a los primeros. Podemos expresar las condiciones en las entradas en el cuadrado mágico, que también deben ser cuadrados, dependiendo de los tres parámetros de e,h,i como una pequeña matriz de multiplicación:
\begin{array} {r}
&&&&|&e^2| \\
&&&&|&h^2| \\
&&&&*|&i^2| \\
\hline
|& 2 & 0 & -1| & |&a^2| \\
|& 2 & -1 & 0| & |&b^2| \\
|&-1 & 1 & 1| & = |&c^2| \\
|&-2 & 1 & 2| & |&d^2| \\
|& 4 & -1 &-2| & |&f^2| \\
|& 3 & -1 &-1| & |&g^2| \\
\end{array}
He encontrado que mucht tentador tratar de hacer algo, de que la descripción estructural para decir algo acerca de las posibilidades para todas las entradas simultanously a ser de plazas, pero aún no tienen una expresión mejor.
[actualización] Los comentarios de abajo que me motivó a tratar simplemente de que parametrizadas problema. El uso de un Pari/GP-rutina con un triple bucle para la base de parámetros- e,h,i tengo este 7-plaza-soluciones en 53 segundos: (que es también el dado de 7 plazas solución se muestra en el hilo de la pregunta inicial)
\pequeño \begin{bmatrix}
205^2 & 527^2 & 222121 \\
360721 & 425^2 & 23^2 \\
373^2 & 289^2& 565^2
\end{bmatrix}
\pequeño
\begin{bmatrix}
222121 & 527^2 & 205^2 \\
23^2 & 425^2 & 360721 \\
565^2 & 289^2 & 373^2
\end{bmatrix}
La simetría de las dos soluciones indicar, que yo podría haber reducido a la mitad el consumo de tiempo Si tuviera un poco más inteligente de búsqueda de criterios.
Con un mejor criterio para el bucle (100 seg, e utilizado hasta 3000) he encontrado algunas más - por desgracia, el sólo son el trivial múltiplos de la primera solución... :
\pequeño \begin{matrix}
& a^2 & b^2 & c^2 & d^2 & e^2 & f^2 & g^2 & h2 & i^2 \\
\hline
& 410^2 & 1054^2 & 2^2\cdot 151 \cdot 1471 & 2^2\cdot 137 \cdot 2633
& 850^2 & 46^2 & 746^2 & 578^2 & 1130^2 \\
& 615^2 & 1581^2 & 3^2\cdot 151 \cdot 1471 & 3^2\cdot 137 \cdot 2633
& 1275^2 & 69^2 & 1119^2 & 867^2 & 1695^2 \\
& 820^2 & 2108^2 & 4^2\cdot 151 \cdot 1471 & 4^2\cdot 137 \cdot 2633
& 1700^2 & 92^2 & 1492^2 & 1156^2 & 2260^2 \\
& 1025^2 & 2635^2 & 5^2\cdot 151 \cdot 1471 & 5^2\cdot 137 \cdot 2633
& 2125^2 & 115^2 & 1865^2 & 1445^2 & 2825^2 \\
& 1230^2 & 3162^2 & 6^2\cdot 151 \cdot 1471 & 6^2\cdot 137 \cdot 2633
& 2550^2 & 138^2 & 2238^2 & 1734^2 & 3390^2 \\
& \vdots \\
k^2*\ldots&205^2 & 527^2 & 151 \cdot 1471 & 137 \cdot 2633 & 425^2& 23^2 & 373^2 & 289^2 & 565^2\\
& \vdots \end{de la matriz}
Obviamente no hay ningún número k^2, lo que haría que las entradas de las columnas c^2 d^2 un cuadrado perfecto, por lo que este esquema no puede proporcionar una mejor solución para mayor k.
Aquí está el Pari/GP-código (actualizado)
isin(x,vgl)=if (x<1,return(1)); for(k=1,
{ listsqsq(max_e=100,max_nosq=3,min_e=1)= local(a,b,c,d ,f,g, no_sq,a2,b2,c2,d2,e2,f2,g2,h2,i2,list,li);
list=vectorv(20000);li=0;
for(e=min_e,max_e, e2=e^2;
for(h=1,ceil(1.5*e), if(h==e,next()); \\ no higher h needed
h2=h^2;
b2=2*e2 - h2; if(isin(b2,[e2,h2]), next());
if(issquare(b2)==0, next());
b=sqrtint(b2);
for(i=sqrtint(e2-ceil(h2/2)),sqrtint(2*e2-floor(h2/2))+1, if(isin(i,[e,h,b]),next()); \\ no higher i needed
i2=i^2;no_sq=0;
g2= b2 +e2-i2; if (isin(g2,[b2,e2,h2,i2]) ,next()); if(issquare(g2)==0,next()); g=sqrtint(g2);
a2= 2*e2 -i2; if (isin(a2,[b2,e2,h2,i2,g2]) ,next()); if(issquare(a2)==0,a=-a2;no_sq++, a=sqrtint(a2));
c2=-e2+h2+i2; if (isin(c2,[b2,e2,h2,i2,g2,a2]) ,next()); if(issquare(c2)==0,c=-c2;no_sq++, c=sqrtint(c2));
d2=-2*e2+h2+2*i2; if (isin(d2,[b2,e2,h2,i2,g2,a2,c2]) ,next()); if(issquare(d2)==0,d=-d2;no_sq++, d=sqrtint(d2));
f2= 4*e2-h2-2*i2; if (isin(f2,[b2,e2,h2,i2,g2,a2,c2,d2]),next()); if(issquare(f2)==0,f=-f2;no_sq++, f=sqrtint(f2));
if(no_sq>max_nosq,next());
idx=prime(e)*prime(h)*prime(i)*prime(g);
li++;list[li]=[a,b,c,d,e,f,g,h,i,log(idx),no_sq];
)
);
);
if(li==0 , return(Mat([0])));
list=Mat(vecextract(list,Str("1..",li)));
list=vecsort(list~,[10,4,7,8,3,6,7])~;
return(list);}