En este ejemplo vamos a calcular una matriz simétrica con Java. Una matriz simétrica es aquella donde la matriz es igual a la matriz transpuesta.
A = At
Así que lo primero que tenemos que saber es como calcular la matriz transpuesta con Java (At). Es decir, convertir sus filas en columnas.
Hemos creado una clase Matriz.java la cual contiene múltiples operaciones. Entre las cuales encontrarás la de transponer una matriz con Java.
public static int[][] transponer(int[][] matriz) {
int[][] nuevaMatriz = new int[matriz[0].length][matriz.length];
for (int x=0; x < matriz.length; x++) {
for (int y=0; y < matriz[x].length; y++) {
nuevaMatriz[y][x] = matriz[x][y];
}
}
return nuevaMatriz;
}
Creamos la matriz de la cual queremos saber si es simétrica.
int[][] m1 = {{1,2,3},{2,3,1},{3,1,2}};
E invocamos para obtener la matriz transpuesta el método anterior:
int[][] m2 = Matriz.transponer(m1);
Ahora tendremos que comparar si m1 y m2 son iguales. Para ello recuerda que no podemos utilizar ni el operador igual ni el método equals. Si no que tenemos que utilizar el método .deepEquals.
public static boolean equals(int[][] m1, int[][] m2) {
if (Arrays.deepEquals(m1, m2))
return true;
else
return false;
}
En nuestra clase Matriz.java también hemos creado este método que podrás utilizar.
Así que lo último que hacemos para saber si es una matriz simétrica con Java será compararlas.
if (Matriz.equals(m1, m2))
System.out.println("La matriz es una matriz simétrica");
else
System.out.println("La matriz NO es una matriz simétrica");