Untitled
unknown
python
9 months ago
1.9 kB
12
Indexable
# Funzione che verifica se una matrice è un quadrato magico
def QuadratoM(m):
# Ottiene la dimensione della matrice (assumendo che sia quadrata)
n = len(m)
# Calcola la somma della prima riga come riferimento
somma_riferimento = 0
for j in range(n):
somma_riferimento = somma_riferimento + m[0][j]
# Verifica le somme di tutte le righe
for i in range(n):
somma_riga = 0
for j in range(n):
somma_riga = somma_riga + m[i][j]
# Se trova una riga con somma diversa dal riferimento, non è un quadrato magico
if somma_riga != somma_riferimento:
return False
# Verifica le somme di tutte le colonne
for j in range(n):
somma_colonna = 0
for i in range(n):
somma_colonna = somma_colonna + m[i][j]
# Se trova una colonna con somma diversa dal riferimento, non è un quadrato magico
if somma_colonna != somma_riferimento:
return False
# Verifica la somma della diagonale principale (da in alto a sinistra a in basso a destra)
somma_diag1 = 0
for i in range(n):
somma_diag1 = somma_diag1 + m[i][i]
if somma_diag1 != somma_riferimento:
return False
# Verifica la somma della diagonale secondaria (da in alto a destra a in basso a sinistra)
somma_diag2 = 0
for i in range(n):
somma_diag2 = somma_diag2 + m[i][n-1-i]
if somma_diag2 != somma_riferimento:
return False
# Se tutte le verifiche sono passate, è un quadrato magico
return True
# Test della funzione con una matrice 4x4
m = [[16,3,2,13], # Prima riga
[5,10,11,8], # Seconda riga
[9,6,7,12], # Terza riga
[4,15,14,1]] # Quarta riga
# Chiama la funzione e stampa il risultato
risultato = QuadratoM(m)
print(risultato) # Stamperà True perché questa è un quadrato magico con somma 34Editor is loading...
Leave a Comment