Matriz Simétrica con Java
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.
¿Qué es una matriz simétrica?
Sección titulada «¿Qué es una matriz simétrica?»Una matriz es simétrica cuando es igual a su transpuesta. Es decir, cuando:
$$ A = A^t $$
Transponer la matriz
Sección titulada «Transponer la matriz»Así que lo primero que tenemos que saber es cómo 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[][] m) { int[][] mt = new int[m[0].length][m.length]; for (int i = 0; i < m.length; i++) { for (int j = 0; j < m[i].length; j++) { mt[j][i] = m[i][j]; } } return mt;}Crear la matriz
Sección titulada «Crear la matriz»Creamos la matriz de la cual queremos saber si es simétrica.
int[][] m1 = {{1, 2, 3}, {2, 4, 5}, {3, 5, 6}};Obtener la matriz transpuesta
Sección titulada «Obtener la matriz transpuesta»E invocamos para obtener la matriz transpuesta el método anterior:
int[][] m2 = Matriz.transponer(m1);Comparar las matrices
Sección titulada «Comparar las matrices»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.
if (Arrays.deepEquals(m1, m2)) { System.out.println("La matriz es simétrica");} else { System.out.println("La matriz no es simétrica");}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.esIgual(m1, m2)) { System.out.println("La matriz es simétrica");}Descarga el código de Matriz Simétrica con Java
Código que nos calcula si tenemos una matriz simétrica con Java. Ayuda con el cálculo para transponer una matriz.
¿Cuál de las siguientes opciones inicializa correctamente un array de String con 3 elementos?
- A String[] nombres = {"Ana", "Luis", "Carlos"};
- B String nombres[] = new String[3] {"Ana", "Luis", "Carlos"};
- C String nombres = ["Ana", "Luis", "Carlos"];
- D String[] nombres = new String(3);