Cuadrados Mágicos Y47697


Statement
 

pdf   zip

thehtml

Escribir una función cuadrado_magico(m) tal que dada una matriz m cuadrada de dimensión n × n, retorne True si la matriz m es un cuadrado mágico o False si no lo es.

Diremos que una matriz m de dimensión n × n es un cuadrado mágico si sus elementos son los números 1,2,…,n2, y todas las filas, todas las columnas y las dos diagonales suman lo mismo.

Por ejemplo, la matriz (Python) 3 × 3 [[6,1,8],[7,5,3],[2,9,4]] es un cuadrado mágico, cuya suma es 15.

Entrada

La función tiene una matriz m de dimensión n × n como parámetro.

Observaciones

Considerar la posibilidad de utilizar la función solución del problema P27498 (Transposed matrix) como función auxiliar en este problema. Recordar que, en caso de que decida utilizarla, debe añadirla al archivo que envíe como solución.

Puede utilizar la función sum(lst,0) para sumar los elementos de la lista lst.

No puede utilizar el módulo numpy, ni ningún otro módulo.

Una vez definida la función, al probarla en el REPL de Python debería salir lo mismo que puede observar más abajo.

Sample session
>>> cuadrado_magico([[6, 1, 8], [7, 5, 3], [2, 9, 4]])
True
>>> cuadrado_magico([[6, 1, 8], [7, 5, 9], [2, 3, 4]])
False
>>> cuadrado_magico([[1, 6, 8], [5, 7, 3], [9, 2, 4]])
False
>>> cuadrado_magico([[1]])
True
>>> cuadrado_magico([[1, 2], [3, 4]])
False
>>> cuadrado_magico([[4, 5, 16, 9], [14, 11, 2, 7], [1, 8, 13, 12], [15, 10, 3, 6]])
True
>>> 
Information
Author
Jordi Delgado (basat en el problema P99555 de Salvador Roura)
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan
Official solutions
Python
User solutions
Python