Matriks simetri ialah kes khas matriks di mana kedua-dua matriks dan transpose matriks adalah sama. Matriks ialah satu set integer atau nombor yang disimpan dalam bentuk segi empat tepat, yang bersamaan dengan tatasusunan dua dimensi Transpose matriks juga merupakan matriks yang diperoleh dengan menggantikan semua baris dengan lajur. Kami akan mendapat matriks dan perlu mencetak sama ada matriks simetri atau tidak.
Mat = [[1, 2, 3], [2, 3, 8], [3, 8, 0]]
Yes, the given matrix is the symmetric matrix.
Seperti yang kita ketahui, matriks transpos ialah matriks yang menggantikan lajur dengan baris dan baris dengan lajur, jadi di sini baris pertama sama dengan lajur pertama, baris kedua sama dengan lajur, dan baris ketiga baris adalah sama dengan lajur.
Mat = [[1, 2, 3], [2, 3, 9], [3, 8, 0]]
No, the given matrix is not a symmetric matrix.
Dalam matriks yang diberikan, matriks yang ditransposkan ialah -
Trans: [[1, 2, 3], [2, 3, 8], [3, 9, 0]]
Kita dapat lihat bahawa baris kedua dan baris ketiga atau lajur kedua dan lajur ketiga adalah berbeza.
NOTA - Seperti yang kita dapat lihat, transpose matriks yang diberikan boleh dibentuk dengan menukar baris dan lajur, yang bermaksud jika matriks mempunyai dimensi N*M, maka matriks transpos akan mempunyai dimensi M*N . Ini bermakna bahawa untuk matriks menjadi simetri, N mesti sama dengan M, menghasilkan matriks segi empat sama.
Dalam kaedah ini, kita mula-mula mendapatkan matriks transpos dengan mencipta matriks baharu dan menyimpan elemen dalam baris dan lajur. Kami kemudian hanya akan mengulangi kedua-dua matriks dan membandingkannya. Jika ia tidak sepadan pada mana-mana indeks maka kami akan mengembalikan palsu, jika tidak, kami akan mengembalikan benar.
// 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") }
Kerumitan masa kod di atas ialah O(N*N), di mana N ialah saiz matriks yang diberikan.
Kerumitan ruang kod di atas ialah O(N*N) kerana kami menggunakan ruang tambahan untuk menyimpan elemen matriks yang ditranspos.
Matriks transposed boleh diperolehi dengan menukar baris dan lajur, iaitu setiap lajur adalah sama dengan baris yang sepadan. Oleh itu, nilai pada mana-mana indeks (i,j) akan sama dengan nilai pada (j,i) dalam matriks yang diberikan.
// 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") }
Kerumitan masa kod di atas ialah O(N*N), di mana N ialah saiz matriks yang diberikan.
Kerumitan ruang kod di atas ialah O(1) kerana kami tidak menggunakan sebarang ruang tambahan.
Dalam tutorial di atas, kami melaksanakan kod JavaScript untuk mencari sama ada matriks yang diberikan ialah matriks simetri. Matriks simetri ialah kes khas matriks di mana kedua-dua matriks dan transpose matriks adalah sama, dan transpos matriks boleh diperolehi dengan menukar baris dan lajur. Suatu matriks mestilah segi empat sama untuk menjadi simetri. Kami melaksanakan dua kaedah dengan kerumitan masa O(N*N), kerumitan ruang O(N*N), dan kerumitan ruang O(1).
Atas ialah kandungan terperinci Program JavaScript untuk memeriksa sama ada matriks adalah simetri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!