Matriz Antisimétrica en Java
Una matriz antisimétrica es aquella cuya matriz transpuesta es igual a la matriz negativa. Es decir, que cumple:
At = -AEs por ello que para poder calcular si una matriz es antisimétrica en Java deberíamos de saber como calcular la matriz transpuesta y como calcular la matriz negativa.
Lo primero será obtener la matriz transpuesta. Para ello hay que cambiar las filas por columnas:
int[][] mt = new int[m.length][m.length];for (int x = 0; x < m.length; x++) for (int y = 0; y < m.length; y++) mt[x][y] = m[y][x];Vemos que lo que hacemos es recorrer toda la matriz mediante dos bucles anidados y finalmente asignar el valor de lo que encontremos en x,y a la posición y,x.
Para generar la matriz negativa vamos a realizar la misma operación con los dos bucles anidados. Lo único que en este caso lo que hacemos es invertir el signo del elemento que se encuentre en la posición x,y:
int[][] mn = new int[m.length][m.length];for (int x = 0; x < m.length; x++) for (int y = 0; y < m.length; y++) mn[x][y] = -m[x][y];Ya solo nos quedará comparar las dos matrices. Hay que recordar que para comparar matrices no nos vale el método equals, si no que deberemos de utilizar el método deepEquals de la clase Arrays:
if (Arrays.deepEquals(mn, mt)) System.out.println("Es una Matriz Antisimétrica");else System.out.println("No es una Matriz Antisimétrica");Para ayudar a calcular una matriz Antisimétrica en hemos publicado una clase Matriz.java en la que dispones de múltiples métodos para el manejo de matrices. En ella encontraras los métodos transponer(), negativa() y equals(). Así que puedes calcular si una matriz es antisimétrica en Java invocándolos a los tres:
int[][] m = {{0,-2,4},{2,0,2},{-4,-2,0}};
System.out.println("Matriz Inversa");int[][] mn = Matriz.negativa(m);
System.out.println("Matriz Transpuesta");int[][] mt = Matriz.transponer(m);
if (Matriz.equals(mn, mt)) System.out.println("Es una Matriz Antisimétrica");else System.out.println("No es una Matriz Antisimétrica");Ahora que más fácil sería invocar al método esAntiSimetrica() en el que ya hemos dispuesto este código y así tendríamos de una forma sencilla el cálculo para saber si tenemos una matriz antisimétrica en Java:
if (Matriz.esAntiSimetrica(m)) System.out.println("Es una Matriz Antisimétrica");else System.out.println("No es una Matriz Antisimétrica");Descarga el código de Matriz Antisimétrica en Java
Código que nos enseña a calcular si tenemos una matriz antisimétrica en Java.
¿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);