El siguiente código toma una matriz ( MAT ) y transpone la matriz, la llama array . La definición de matriz simétrica es que debe ser una matriz cuadrada y los elementos de la matriz dada en comparación con la transpuesta deben ser los mismos.
La matriz dada a continuación y la matriz transpuesta deberían dar como resultado false si se verifica la simetría.
Creé una declaración if al principio para comprobar si MAT[j][i] y array[j][i] son iguales, pero sigo obteniendo la respuesta incorrecta. No está verificando correctamente todos los elementos juntos. ¿Alguien podría ayudar con eso?
¡Gracias!
const symmetricMatrix = function (MAT) { let array = []; for (let i = 0; i < MAT.length; i++) { array.push([]); for (let j = 0; j < MAT.length; j++) { array[i].push(MAT[j][i]); } } return array; }; console.log( symmetricMatrix( (MAT = [ [1, 3, 1], [-1, 1, 4], [2, 1, 0], ]) ) );Primero puede crear una copia de la matriz y luego transponerla y luego verificar si tiene el mismo elemento en ese índice.
const symmetricMatrix = function (mat) { const copy = Array.from(mat, (_) => []); for (let i = 0; i < mat.length; i++) for (let j = 0; j < mat.length; j++) copy[i][j] = mat[j][i]; for (let i = 0; i < mat.length; i++) for (let j = 0; j < mat.length; j++) if (copy[i][j] != mat[i][j]) return false; return true; }; const matrix = [ [1, 3, 1], [-1, 1, 4], [2, 1, 0], ]; const matrix2 = [ [1, -1, 2], [-1, 1, 1], [2, 1, 0], ]; console.log(symmetricMatrix(matrix)); console.log(symmetricMatrix(matrix2));