Quadrats Màgics Y47697


Statement
 

pdf   zip

thehtml

Escriure una funció quadrat_magic(m) tal que donada una matriu m quadrada de dimensió n × n, retorni True si la matriu m és un quadrat màgic o False si no ho és.

Direm que una matriu m de dimensió n × n és un quadrat màgic si els seus elements són els nombres 1,2,…,n2, i totes les files, totes les columnes i les dues diagonals sumen el mateix.

Per exemple, la matriu (Python) 3 × 3 [[6,1,8],[7,5,3],[2,9,4]] és un quadrat màgic, on la suma és 15.

Entrada

La funció té una matriu m de dimensió n × n com a paràmetre.

Observacions

Considereu la possibilitat de fer servir la funció solució del problema P27498 (Transposed matrix) com a funció auxiliar en aquest problema. Recordeu que, en cas que decidiu fer-la servir, l’heu d’afegir al fitxer que envieu com a solució.

Podeu fer servir la funció sum(lst,0) per sumar els elements de la llista lst.

No podeu fer servir el mòdul numpy, ni cap altre mòdul.

Un cop definida la funció, en provar-la al REPL de Python us hauria de sortir el mateix que podeu observar més avall.

Sample session
>>> quadrat_magic([[6, 1, 8], [7, 5, 3], [2, 9, 4]])
True
>>> quadrat_magic([[6, 1, 8], [7, 5, 9], [2, 3, 4]])
False
>>> quadrat_magic([[1, 6, 8], [5, 7, 3], [9, 2, 4]])
False
>>> quadrat_magic([[1]])
True
>>> quadrat_magic([[1, 2], [3, 4]])
False
>>> quadrat_magic([[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
Catalan
Other languages
Spanish
Official solutions
Python
User solutions
Python