Heim >Web-Frontend >js-Tutorial >JavaScript-Programm zur Überprüfung, ob die Matrix symmetrisch ist
Eine symmetrische Matrix ist ein Sonderfall einer Matrix, bei der sowohl die Matrix als auch die Transponierte der Matrix gleich sind. Eine Matrix ist eine Menge von ganzen Zahlen oder Zahlen, die in rechteckiger Form gespeichert sind, was einem zweidimensionalen Array entspricht. Die Transponierte einer Matrix ist auch eine Matrix, die durch Ersetzen aller Zeilen durch Spalten erhalten wird. Wir erhalten eine Matrix und müssen ausdrucken, ob es sich um eine symmetrische Matrix handelt oder nicht.
Mat = [[1, 2, 3], [2, 3, 8], [3, 8, 0]]
Yes, the given matrix is the symmetric matrix.
Wie wir alle wissen, ist eine transponierte Matrix eine Matrix, die Spalten durch Zeilen und Zeilen durch Spalten ersetzt. Hier ist also die erste Zeile mit der ersten Spalte identisch, die zweite Zeile mit der Spalte und die dritte Zeile ist dasselbe wie die Spalte.
Mat = [[1, 2, 3], [2, 3, 9], [3, 8, 0]]
No, the given matrix is not a symmetric matrix.
In der gegebenen Matrix ist die transponierte Matrix -
Trans: [[1, 2, 3], [2, 3, 8], [3, 9, 0]]
Wir können sehen, dass die zweite Zeile und die dritte Zeile oder die zweite Spalte und die dritte Spalte unterschiedlich sind.
HINWEIS – Wie wir sehen können, kann die Transponierte einer bestimmten Matrix durch Vertauschen von Zeilen und Spalten gebildet werden. Das heißt, wenn die Matrix die Dimensionen N*M hat, dann hat die transponierte Matrix die Dimensionen M*N. Damit eine Matrix symmetrisch ist, muss N gleich M sein, was zu einer quadratischen Matrix führt.
Bei dieser Methode erhalten wir zunächst die transponierte Matrix, indem wir eine neue Matrix erstellen und die Elemente in Zeilen und Spalten speichern. Dann iterieren wir einfach über beide Matrizen und vergleichen sie. Wenn sie bei keinem Index übereinstimmen, geben wir „false“ zurück, andernfalls geben wir „true“ zurück.
// 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") }
Die zeitliche Komplexität des obigen Codes beträgt O(N*N), wobei N die Größe der gegebenen Matrix ist.
Die räumliche Komplexität des obigen Codes beträgt O(N*N), da wir zusätzlichen Speicherplatz zum Speichern der transponierten Matrixelemente verwenden.
Die transponierte Matrix kann durch Austauschen von Zeilen und Spalten erhalten werden, d. h. jede Spalte entspricht der entsprechenden Zeile. Daher ist der Wert an jedem Index (i,j) gleich dem Wert an (j,i) in der gegebenen Matrix.
// 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") }
Die zeitliche Komplexität des obigen Codes beträgt O(N*N), wobei N die Größe der gegebenen Matrix ist.
Die Speicherplatzkomplexität des obigen Codes beträgt O(1), da wir keinen zusätzlichen Speicherplatz verwenden.
Im obigen Tutorial haben wir einen JavaScript-Code implementiert, um herauszufinden, ob eine bestimmte Matrix eine symmetrische Matrix ist. Eine symmetrische Matrix ist ein Sonderfall einer Matrix, bei der sowohl die Matrix als auch die Transponierte der Matrix gleich sind und die Transponierte der Matrix durch Austauschen der Zeilen und Spalten erhalten werden kann. Eine Matrix muss quadratisch sein, um symmetrisch zu sein. Wir haben zwei Methoden mit der zeitlichen Komplexität von O(N*N), der räumlichen Komplexität von O(N*N) und der räumlichen Komplexität von O(1) implementiert.
Das obige ist der detaillierte Inhalt vonJavaScript-Programm zur Überprüfung, ob die Matrix symmetrisch ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!