Une matrice symétrique est un cas particulier de matrice où la matrice et la transposée de la matrice sont identiques. Une matrice est un ensemble d'entiers ou de nombres stockés sous une forme rectangulaire, équivalente à un tableau à deux dimensions. La transposition d'une matrice est également une matrice obtenue en remplaçant toutes les lignes par des colonnes. Nous obtiendrons une matrice et devrons imprimer si c'est une matrice symétrique ou non.
Mat = [[1, 2, 3], [2, 3, 8], [3, 8, 0]]
Yes, the given matrix is the symmetric matrix.
Comme nous le savons tous, une matrice transposée est une matrice qui remplace les colonnes par des lignes et les lignes par des colonnes, donc ici la première ligne est la même que la première colonne, la deuxième ligne est la même que la colonne, et la troisième la ligne est la même que la colonne.
Mat = [[1, 2, 3], [2, 3, 9], [3, 8, 0]]
No, the given matrix is not a symmetric matrix.
Dans la matrice donnée, la matrice transposée sera -
Trans: [[1, 2, 3], [2, 3, 8], [3, 9, 0]]
On peut voir que la deuxième ligne et la troisième ligne ou la deuxième colonne et la troisième colonne sont différentes.
REMARQUE - Comme nous pouvons le voir, la transposée d'une matrice donnée peut être formée en échangeant des lignes et des colonnes, ce qui signifie que si la matrice a des dimensions N*M, alors la matrice transposée aura des dimensions M*N . Cela signifie que pour qu’une matrice soit symétrique, N doit être égal à M, ce qui donne une matrice carrée.
Dans cette méthode, nous obtenons d'abord la matrice transposée en créant une nouvelle matrice et en stockant les éléments en lignes et en colonnes. Ensuite, nous allons simplement parcourir les deux matrices et les comparer. S'ils ne correspondent à aucun index, nous renverrons false, sinon nous renverrons true.
// function to find the transpose of the given matrix function getTranspose(mat){ // getting the number of rows present in the given matrix. var n = mat.length; // getting the number of columns present in the given matrix. var m = mat.length; // creating a new array to store the transpose matrix // new array will have m rows and n columns var transP = new Array(m) // traversing over the given matrix column-wise for(var i = 0;i < m; i++){ var cur = new Array(n); for(var j = 0; j<n; j++){ cur[j] = mat[j][i]; } transP[i] = cur; } // returing tranpose of the given matrix return transP; } // function to check if the given matrix is symmetric or not function check(mat){ var n = mat.length; var m = mat[0].length; // matrix must be a square matrix if(n != m){ return false; } // getting tranpose of the given matrix var transP = getTranspose(mat); // checking if both matrices are equal for(var i = 0; i<n ;i++){ for(var j = 0; j<n ;j++){ if(mat[i][j] != transP[i][j]){ return false; } } } return true; } // defining the matrix var mat = [[1, 2, 3], [2, 3, 8], [3, 8, 0]] console.log("The given matrix is: ") console.log(mat); if(check(mat)){ console.log("The given matrix is a symmetric matrix") } else{ console.log("The given matrix is not a symmetric matrix") }
La complexité temporelle du code ci-dessus est O(N*N), où N est la taille de la matrice donnée.
La complexité spatiale du code ci-dessus est O(N*N) car nous utilisons un espace supplémentaire pour stocker les éléments matriciels transposés.
La matrice transposée peut être obtenue en échangeant des lignes et des colonnes, c'est-à-dire que chaque colonne est égale à la ligne correspondante. Par conséquent, la valeur à n’importe quel indice (i,j) sera égale à la valeur à (j,i) dans la matrice donnée.
// function to check if the given matrix is symmetric or not function check(mat){ var n = mat.length; var m = mat[0].length; // matrix must be a square matrix if(n != m){ return false; } // checking if mat[i][j] is equal to mat[j][i] or not for(var i = 0; i<n ;i++){ for(var j = 0; j<i ;j++){ if(mat[i][j] != mat[j][i]){ return false; } } } return true; } // defining the matrix var mat = [[1, 2, 3], [2, 3, 8], [3, 9, 0]] console.log("The given matrix is: ") console.log(mat); if(check(mat)){ console.log("The given matrix is a symmetric matrix") } else{ console.log("The given matrix is not a symmetric matrix") }
La complexité temporelle du code ci-dessus est O(N*N), où N est la taille de la matrice donnée.
La complexité spatiale du code ci-dessus est O(1) car nous n'utilisons aucun espace supplémentaire.
Dans le tutoriel ci-dessus, nous avons implémenté un code JavaScript pour savoir si une matrice donnée est une matrice symétrique. Une matrice symétrique est un cas particulier de matrice dans laquelle la matrice et la transposée de la matrice sont identiques, et la transposée de la matrice peut être obtenue en échangeant les lignes et les colonnes. Une matrice doit être carrée pour être symétrique. Nous avons implémenté deux méthodes avec une complexité temporelle de O(N*N), une complexité spatiale de O(N*N) et une complexité spatiale de O(1).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!