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,#vgl,if(x==vgl[k],return(1)));return(0);
{ 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);}