JavaScript程式:將矩陣向右旋轉K次


“將矩陣向右旋轉”是指將矩陣中的每一列向右移動。如果指定了“k”值,則此操作將重複“k”次。換句話說,這是矩陣向右移動k次的迴圈右移。此程式可以使用多種程式語言實現,但一種簡單而有效的方法是考慮使用JavaScript將矩陣向右旋轉k次。

如何將矩陣向右旋轉K次?

將矩陣向右旋轉k次很簡單,這涉及到將矩陣的每一列向右移動k次。為了演示這一點,讓我們使用一個示例手動將矩陣向右旋轉k次。

示例

讓我們取一個大小為N*M的矩陣和一個數字K。我們必須將矩陣向右旋轉k次。

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

方法

執行k次向右旋轉的過程似乎很容易理解,但實現起來可能有點挑戰。此方法包括將第i行每一列的元素複製到臨時陣列中,直到m-k。然後,我們將元素從k到末尾轉移到第i行的開頭。最後,我們將元素從臨時陣列複製回矩陣的每個第i行的末尾。

讓我們看看我們將要使用的演算法。

將矩陣向右旋轉K次的演算法

步驟1 -確定矩陣的行數和列數。

步驟2 -根據k的值計算每一行需要移動的次數。可以使用模運算子(%)。

步驟3 -對於矩陣中的每一行,建立一個包含需要移動的元素的新陣列。

步驟4 -使用splice()方法從原始行中移除移動的元素,並將它們新增到新行的開頭。

步驟5 -將原始行設定為新行。

步驟6 -對矩陣中的每一行重複步驟3-5。

示例

在這個程式中,我們定義了一個MatrixRotation類,它有兩個靜態方法:displayMatrix()和rotateMatrixRight()。

displayMatrix()方法接收一個矩陣作為輸入並在控制檯中顯示它。它使用for迴圈迭代矩陣中的每一行,並將它們記錄到控制檯中。

rotateMatrixRight()方法接收一個矩陣和一個數字k作為輸入,並返回一個向右旋轉k個位置的新矩陣。它使用與前面答案中相同的演算法來執行旋轉。

在示例使用方法程式碼中,我們定義了一個輸入矩陣和k的值,然後呼叫rotateMatrixRight()方法執行旋轉。我們使用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);

結論

可以使用JavaScript中的幾個簡單步驟實現將矩陣向右旋轉k次。第一步是確定矩陣的行數和列數。下一步是根據k的值計算每一行需要向右移動的次數。一旦確定了移動次數,程式就可以迭代矩陣的每一行,建立一個包含從原始行移動的元素的新陣列,並使用移動的元素更新原始行。透過遵循這些步驟,我們可以使用JavaScript將矩陣向右旋轉k次。

更新於:2023年4月20日

瀏覽量:182

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.