Matriks binari ialah tatasusunan dua dimensi yang mengandungi hanya 1 dan 0 elemen dalam setiap sel. Simetri mendatar matriks binari bermakna jika baris pertama sama dengan baris terakhir, baris kedua adalah sama dengan baris kedua hingga terakhir, dan seterusnya. Begitu juga, simetri menegak bermaksud sama ada lajur pertama dan terakhir, lajur kedua hingga terakhir dan lajur kedua hingga terakhir, dsb., adalah sama. Dalam masalah ini, kita diberikan matriks dan kita akan mengesan sama ada terdapat simetri mendatar dan menegak di dalamnya.
1 0 1 0 0 0 1 0 1
Both, horizontal and vertical symmetry is present.
Penjelasan - Baris pertama dan terakhir adalah sama, bermakna terdapat simetri mendatar. Begitu juga, lajur pertama dan terakhir adalah sama, menghasilkan simetri menegak.
1 0 1 0 0 0 1 1 0
None of the symmetry is present.
Penjelasan- Baris pertama tidak sama dengan baris terakhir dan lajur pertama tidak sama dengan lajur terakhir.
Kami telah melihat contoh untuk memahami masalah yang diberikan, sekarang mari kita lihat langkah-langkah untuk melaksanakan kod -
Pertama, kita akan mentakrifkan fungsi untuk menyemak simetri mendatar bagi matriks tertentu. Fungsi ini akan mengambil satu hujah bagi matriks yang diberikan dan mengembalikan sama ada matriks semasa adalah simetri mendatar.
Kami akan melelakan melalui matriks dan untuk setiap baris kami akan membandingkannya dengan baris di sisi lain garis khayalan yang melalui tengah matriks dan jarak yang sama dari baris semasa . p>
Kami akan mentakrifkan fungsi untuk menyemak simetri menegak bagi matriks tertentu. Fungsi ini akan mengambil satu hujah, matriks yang diberikan.
Kami akan lelaran melalui matriks dan untuk setiap lajur kami akan membandingkan dengan lajur di sebelah lain garis khayalan yang melalui tengah matriks dan jarak yang sama dari lajur semasa. p>
Kami akan memanggil kedua-dua fungsi ini dan mencetak keputusan berdasarkan nilai pulangan.
// function to check horizontal symmetry function horizontalSymm(mat){ var rows = mat.length; var cols = mat[0].length; for(var i = 0; i< rows/2; i++){ for(var j = 0;j<cols; j++){ if(mat[i][j] != mat[rows-i-1][j]){ return false; } } } return true; } // function to check vertical symmetry function verticalSymm(mat){ var rows = mat.length; var cols = mat[0].length; for(var i = 0; i< cols/2; i++){ for(var j = 0;j<rows; j++){ if(mat[j][i] != mat[j][cols-i-1]){ return false; } } } return true; } // function to check the symmetry of the given matrix function check(mat){ var horSymm = horizontalSymm(mat); var varSymm = verticalSymm(mat); if(horSymm && varSymm){ console.log("Both, horizontal and vertical symmetries are present in the given matrix"); } else if(horSymm){ console.log("The given binary matrix is only horizontally symmetric"); } else if(varSymm){ console.log("The given binary matrix is only vertically symmetric"); } else{ console.log("The given binary matrix is neither horizontally symmetric nor vertically symmetric"); } } // defining the given matrix var mat = [[1, 0, 1], [0, 0, 0], [1, 0, 1]]; console.log("The given matrix is: ") console.log(mat); check(mat); // defining the given matrix var mat = [[1, 0, 1], [0, 0, 0], [1, 1, 0]]; console.log("The given matrix is: ") console.log(mat); check(mat);
The given matrix is: [ [ 1, 0, 1 ], [ 0, 0, 0 ], [ 1, 0, 1 ] ] Both, horizontal and vertical symmetries are present in the given matrix The given matrix is: [ [ 1, 0, 1 ], [ 0, 0, 0 ], [ 1, 1, 0 ] ] The given binary matrix is neither horizontally symmetric nor vertically symmetric
Kerumitan masa kod di atas ialah O(N*M), di mana N ialah bilangan baris matriks yang diberikan dan M ialah bilangan lajur matriks yang diberikan. Kami akan melintasi keseluruhan matriks dua kali, sekali untuk simetri mendatar dan sekali untuk simetri menegak.
Kerumitan ruang kod di atas ialah O(1) kerana kami tidak menggunakan sebarang ruang tambahan.
Dalam tutorial ini, kami melaksanakan program JavaScript untuk mencari sama ada matriks yang diberikan adalah simetri mendatar atau menegak. Simetri mendatar matriks binari bermakna jika baris pertama adalah sama dengan baris terakhir, maka baris kedua adalah sama dengan baris kedua ke terakhir, dan seterusnya. Begitu juga, simetri menegak bermaksud sama ada lajur pertama dan terakhir, lajur kedua hingga terakhir dan lajur kedua hingga terakhir, dll. adalah sama. Kami melaksanakan program dengan kerumitan masa O(N*M) dan kerumitan ruang O(1).
Atas ialah kandungan terperinci Program JavaScript untuk menyemak simetri mendatar dan menegak dalam matriks binari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!