Untitled
# 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 34
Leave a Comment