package calcularDeterminantes; public class Determinantes { public int calDeterminante (int [][] matriz) { int determinante = 0; int filas = matriz.length; int columnas = matriz[0].length; // En caso de que sea una matriz 1x1 if ((filas==1) && (columnas==1)) return matriz[0][0]; int signo=1; for (int col=0;col<columnas;col++) { int[][] submatriz = getSubmatriz(matriz, filas, columnas, col); determinante = determinante + signo*matriz[0][col]*calDeterminante(submatriz); signo*=-1; } return determinante; } public int[][] getSubmatriz(int[][] matriz,int filas,int col,int columna) { int [][] submatriz = new int[filas-1][col-1]; int contador=0; for (int x=0;x<col;x++) { if (x==col) continue; for (int y=1;y<filas;y++){ submatriz[y-1][contador]=matriz[y][x]; } contador++; } return submatriz; } }
martes, 19 de junio de 2012
Calcular determinante de una matriz NxM - Java
Aquí les dejo un algoritmo genérico para calcular determinante con cualquier matriz de dimensiones NxM. En esta ocacion en lenguaje Java, pero es facilmente adaptable a cualquier otro lenguaje. Espero le sea útil a alguien.
Etiquetas:
algoritmos programador http://pinguinazos.blogspot.com,
calcular determinantes NxN,
colombia,
cualquier determinante,
determinantes,
geek,
genesis guerrero,
java,
nxn,
programacion linux,
santa marta
Suscribirse a:
Enviar comentarios (Atom)
Hola soy el del blog de c++ y allegro. Me gusto mucho tu blog te felicito :)
ResponderEliminarMira unos amigos y yo estamos tratando de hacer crecer un foro dedicado a la programación de juegos en c++ y allegro, te dejo la dirección por si te interesa
http://creatusjuegosdecero.webege.com
Se ve interesante, participaré.
ResponderEliminarMuy buen aporte!!!! Puntualizar, sin quitarte méritos, que, si planteases tu estrategia junto con la codificación del algoritmo alguien podría intentar implementarlo por su cuenta en lugar de copiarlo.
ResponderEliminarMuchas gracias
Según yo en la línea 32 debería ser:
ResponderEliminarif (x==columna) continue;
¿Alguien podría corroborarlo?
Alguien sabe como compilarlo desde linux
ResponderEliminar