Untitled

 avatar
unknown
python
8 days ago
1.9 kB
7
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 34
Leave a Comment