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
,
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
.
La funció té una matriu m de dimensió
n
n com a paràmetre.
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 >>>