Buen día, me podrían echar una manito para hacer este ejercicio con python?
________________________
Todo cuadrado mágico básico de orden \( n \) tiene la misma constante "mágica", por lo que sin ambigüedad la podemos denotar por \( k_n = \displaystyle\frac{n(n^2 +1)}{2} \).
Escribir un programa que tome una matriz cuadrada (arreglo de Numpy) y verifique si esta es o no un cuadrado mágico básico.
Otra recomendación.
Te sugiero que uses un input para que el usuario meta los datos, porque si pones una función random va a a ser un rollo hasta que salga por suerte alguna matriz mágica.
Primero pones el input del “n” y, cuando se tenga, mediante la fórmula, el programa calcula la constante y la guarda en una variable.
Seguidamente, mediante el “n”, pones otro input con un bucle “for” para ir metiendo los datos a través del teclado, los números de cada fila. Como te piden hacerlo con Numpy, pues tendrás que usar algo así
M=np.array([[a11,a12...],[a2,1, a22...]...])
Yo, el Numpy no lo he usado casi, eso ya lo ves tú.
Para terminar, con unos bucles más (que puedes poner en una función o como tú veas) compruebas mediante la función “sum” si las filas suman la constante; y en cuanto no dé el resultado, mediante un “if” haces un “break” y que imprima que “NO”. Luego, el programa tiene que trasponer la matriz M y volver a sumar las filas haciendo la comprobación; y finalmente comprueba las dos diagonales principales.
Saludos.