In de gravure Melencolia I (1514) van Albrecht Dürer1 vindt men een magisch vierkant2 terug.
Een magisch vierkant is opgebouwd uit getallen met de bijzondere eigenschap dat de som op elke rij, elke kolom en elke diagonaal hetzelfde is. Dit getal noemt men de magische constante.
Schrijf een functie is_magisch(rooster)
die gegeven een vierkant rooster controleert of dit voldoet aan de voorwaarden van een magisch vierkant.
Bestudeer grondig onderstaande voorbeelden.
Voor het vierkant uit de gravure van Dürer geldt:
>>> is_magisch([[16, 3, 2, 13],
[ 5, 10, 11, 8],
[ 9, 6, 7, 12],
[ 4, 15, 14, 1]])
True
De som op elke rij, elke kolom en elke diagonaal is steeds 34.
>>> is_magisch([[8, 3, 4],
[1, 5, 9],
[6, 7, 2]])
True
De som op elke rij, elke kolom en elke diagonaal is steeds 15.
>>> is_magisch([[8, 3, 4],
[6, 5, 9],
[1, 7, 2]])
False
De laatste rij heeft bijvoorbeeld een afwijkende som.