Determinante (regola di Laplace)

Calcola il determinante con la regola di Laplace.
Utilizza, ricorsivamente, i determinanti delle sottomatrici.

Sottomatrice

Crea una sottomatrice di m
Copia tutto tranne la riga er e la colonna ec

def sottoMatrice(m, er, ec):      
    n=len(m)

    mm=[]
    for r in range(n):
        if(r != er): 
            riga=[]
            for c in range(n):
                if(c != ec):
                    riga.append(m[r][c])
            mm.append(riga)   

    return mm

Determinante

Sviluppa la prima riga della matrice.

def determinante(m):          
    n=len(m)
    if(n == 1): return m[0][0]
    if(n == 2): return m[0][0]*m[1][1]-m[0][1]*m[1][0]
        
    somma=0
    segno=+1
    for c in range(n):
        mm     = sottomatrice(m, 0, c) 
        somma += segno * m[0][c] * determinante(mm)
        segno *= -1
    return somma