首頁  >  文章  >  web前端  >  將矩陣向右旋轉 K 次的 JavaScript 程序

將矩陣向右旋轉 K 次的 JavaScript 程序

王林
王林轉載
2023-08-24 22:09:061421瀏覽

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

術語「對矩陣進行右旋轉」是指將矩陣中的每一列向右移動。如果指定,此操作將重複“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 次。

以上是將矩陣向右旋轉 K 次的 JavaScript 程序的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除