Rumah >hujung hadapan web >tutorial js >Program JavaScript untuk memutarkan matriks ke K kali yang betul

Program JavaScript untuk memutarkan matriks ke K kali yang betul

王林
王林ke hadapan
2023-08-24 22:09:061499semak imbas

将矩阵向右旋转 K 次的 JavaScript 程序

Istilah "putaran kanan matriks" bermaksud menggerakkan setiap lajur dalam matriks ke kanan. Jika dinyatakan, operasi ini akan diulang "k" kali. Dalam erti kata lain, ia adalah anjakan kanan matriks yang berlaku "k" kali. Program ini boleh dilaksanakan menggunakan pelbagai bahasa pengaturcaraan, tetapi cara yang mudah tetapi berkesan adalah dengan mempertimbangkan menggunakan JavaScript untuk memutar ke kanan matriks k kali.

Bagaimana hendak memutarkan matriks K kali ke kanan?

Pusing kanan matriks k kali adalah mudah, ini melibatkan pergerakan setiap lajur matriks k kali ke kanan. Untuk menunjukkan ini, kami melakukan contoh melakukan putaran kanan secara manual pada matriks k kali.

Contoh

Mari kita ambil matriks saiz N*M dan nombor K. Kita perlu memutarkan matriks ke k kali yang betul.

Input matrix: N = 4, M = 4, K = 3
1 2 3 4 
6 7 8 9 
0 9 8 7 
5 4 3 2 
Output matrix:
4 1 2 3
9 6 7 8
7 0 9 8
2 5 4 3

kaedah

Proses melakukan k putaran yang betul mungkin kelihatan mudah difahami, tetapi mungkin agak sukar untuk dilaksanakan. Kaedah ini melibatkan penyalinan elemen setiap lajur baris i ke dalam tatasusunan sementara, sehingga m-k. Kemudian, kita mengalihkan elemen dari k ke penghujung baris i ke permulaan. Akhir sekali, kami menyalin elemen dari tatasusunan sementara kembali ke penghujung setiap baris i matriks.

Mari kita lihat algoritma kaedah yang akan kita gunakan.

Algoritma untuk matriks pusingan kanan K kali

Langkah 1 - Tentukan bilangan baris dan lajur dalam matriks.

Langkah 2 - Kira bilangan kali setiap baris perlu dialihkan berdasarkan nilai k. Ini boleh dilakukan menggunakan operator modulo (%).

Langkah 3 - Untuk setiap baris dalam matriks, cipta tatasusunan baharu yang mengandungi elemen yang perlu dialihkan.

Langkah 4 - Gunakan kaedah splice() untuk mengalih keluar elemen yang dialihkan daripada baris asal dan menambahnya pada permulaan baris baharu.

Langkah 5 - Tetapkan baris asal kepada baris baharu.

Langkah 6 - Ulang langkah 3-5 untuk setiap baris dalam matriks.

Contoh

Dalam program ini, kami mentakrifkan kelas MatrixRotation, yang mempunyai dua kaedah statik: displayMatrix() dan rotateMatrixRight().

Kaedah

displayMatrix() mengambil matriks sebagai input dan memaparkannya dalam konsol. Ia menggunakan gelung for untuk berulang melalui setiap baris dalam matriks dan logkannya ke konsol.

Kaedah

rotateMatrixRight() mengambil sebagai input matriks dan nombor k dan mengembalikan matriks baharu yang telah diputarkan kedudukan k ke kanan. Ia menggunakan algoritma yang sama seperti jawapan sebelumnya untuk melakukan putaran.

Dalam contoh kod penggunaan, kami mentakrifkan matriks input dan nilai k, dan kemudian memanggil kaedah rotateMatrixRight() untuk melaksanakan putaran. Kami memaparkan matriks input dan output menggunakan kaedah displayMatrix().

class MatrixRotation {
   static displayMatrix(matrix) {
      for (let i = 0; i < matrix.length; i++) {
         console.log(matrix[i]);
      }
   }
   static rotateMatrixRight(matrix, k) {
      const numRows = matrix.length;
      const numCols = matrix[0].length;
      // Calculate the number of times each row needs to be shifted
      const shifts = k % numCols;
      // Rotate each row of the matrix
      for (let i = 0; i < numRows; i++) {
         const row = matrix[i];
         // Create a new row that contains the shifted elements
         const newRow = row.slice(numCols - shifts).concat(row.slice(0, numCols - shifts));
         // Set the original row to the new row
         matrix[i] = newRow;
      }
      return matrix;
   }
}
// Example usage
const inputMatrix = [
   [1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
];
const k = 2;
console.log("Input matrix:");
MatrixRotation.displayMatrix(inputMatrix);
const outputMatrix = MatrixRotation.rotateMatrixRight(inputMatrix, k);
console.log("Output matrix:");
MatrixRotation.displayMatrix(outputMatrix);

Kesimpulan

Putar kanan matriks k kali menggunakan beberapa langkah mudah dalam JavaScript. Langkah pertama ialah menentukan bilangan baris dan lajur dalam matriks. Langkah seterusnya ialah mengira bilangan kali setiap baris perlu dianjak ke kanan berdasarkan nilai k. Sebaik sahaja bilangan anjakan ditentukan, atur cara boleh mengulangi setiap baris matriks, mencipta tatasusunan baharu yang mengandungi elemen yang dialihkan daripada baris asal dan mengemas kini baris asal dengan elemen yang dialihkan. Dengan mengikuti langkah-langkah ini, kita boleh memutarkan matriks ke k kali yang betul dalam JavaScript.

Atas ialah kandungan terperinci Program JavaScript untuk memutarkan matriks ke K kali yang betul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam