Se vuoi questo è l'algoritmo che ho sviluppato io, tempo fa, in Java:
Questa è ricorsiva e prende 2 parametri: la matrice e il suo ordine.codice:private long det (int [][] matrice, int ordine) { long risultato = 0; int [][] nuova; int pos; if (ordine == 2) risultato = matrice[0][0] * matrice[1][1] - matrice[0][1] * matrice[1][0]; else { nuova = new int[ordine-1][ordine-1]; for (int k=0; k<ordine;k++) { for (int i=1; i<ordine; i++) { pos = 0; for (int j=0; j<ordine; j++) if (j != k) { nuova[i-1][pos] = matrice[i][j]; pos++; } } if ((k % 2) == 0) risultato = risultato + matrice[0][k] * det(nuova, (ordine-1)); else risultato = risultato - matrice[0][k] * det(nuova, (ordine-1)); } } return risultato; }
Ciao.![]()



Rispondi quotando