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.
>>> 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 >>>