Python程式計算矩陣左對角線之和


Python 是一種流行的通用程式語言,可用於從桌面應用程式到 Web 開發和機器學習的廣泛行業。

其簡單的語法使其成為初學者開始學習編碼的理想選擇。在本文中,我們將瞭解如何使用 Python 計算“ *矩陣中左對角線元素的和* ”。

矩陣

在數學中,我們使用矩形排列或矩陣來描述一個數學物件或其屬性,它是一個包含按行和列排列的數字、符號或表示式的矩形陣列或表格。

示例

2 3 4 5
1 2 3 6
7 5 7 4

因此,這是一個具有 3 行 4 列的矩陣。表示為 3*4 矩陣。

  • 矩陣中有兩條對角線,即主對角線和次對角線。

  • 主對角線是從左上角到右下角的對角線,次對角線是從左下角到右上角的對角線。

從給定的示例中 -

2 3        a00 a01
1 2        a10 a11

這裡 a00, a11 是主對角線,a10, a01 是次對角線元素。

矩陣左對角線之和

現在我們已經回顧了基礎知識,並對矩陣和對角線有了透徹的理解,讓我們更深入地探討這個主題,並完成編碼方面的工作。

為了計算總和,讓我們取一個二維矩陣。考慮一個 4*4 矩陣,其元素如下所示:

2 4 6 8       a00 a01 a02 a03
3 5 7 9       a10 a11 a12 a13
1 4 6 7       a20 a21 a22 a23
3 5 1 4       a30 a31 a32 a33
  • 這裡,a00, a11, a22, a33 是主對角線元素,在完成任務之前有一個條件。讓我們學習兩個對角線的條件。

  • 要計算矩陣主對角線元素的總和,它必須滿足行-列條件,該條件指定對於元素的總和,它應該具有行=列的元素。

  • 現在對於次對角線,對於元素a03, a12, a21, a30,行-列條件將是行數 - 列數 -1。

使用For迴圈

在這種方法中,我們將為此目的使用兩個迴圈,即用於行和列,以及用於檢查我們提供的條件的內部迴圈。

演算法

  • 給出一個值 MAX。

  • 定義一個矩陣函式。

  • 使用for迴圈迭代數字。

  • 提供矩陣左對角線的條件。

  • 列印值。

示例

下面給出的示例計算 4 x 4 矩陣中左對角線元素的總和。for迴圈遍歷矩陣的每一行和每一列,如果它們相等(即在左對角線上),則將該元素新增到名為“leftmatrix”的變數中。

max = 50
def sumleftmatrix(matrix, m):
   leftmatrix = 0
   for i in range(0, m):
      for j in range(0, m):
         if (i == j):
            leftmatrix += matrix[i][j]
   print("Sum of left diagonal of the matrix:", leftmatrix)
A = [[ 10, 22, 13, 84 ],
   [ 52, 63, 97, 82 ],
   [ 11, 32, 23, 14 ],
   [ 55, 63, 72, 83 ]]
sumleftmatrix(A, 4)

輸出

在這種方法中,我們只是定義了一個函式,並使用for迴圈為行和列建立了一個範圍。左對角線元素相加的條件。

時間複雜度 - O(N*N),因為我們使用巢狀迴圈檢查 N*N 次。

由於我們沒有使用任何額外空間,輔助空間為 O(1)。

Sum of left diagonal of the matrix: 179

使用單個迴圈

在這種方法中,可以使用單個迴圈計算主對角線和次對角線的總和。

演算法

  • 給出一個值 MAX。

  • 定義一個矩陣函式。

  • 使用for迴圈迭代數字。

  • 提供矩陣左對角線的條件。

  • 列印值。

示例

以下示例定義了一個名為 sumofleftdiagonal 的函式,它接受兩個引數,matrix 和 m。

  • 第一個引數 matrix 是一個二維數字陣列,第二個引數 m 表示二維陣列的大小。

  • 在這個函式中,有一個名為 left_diagonal 的變數,它儲存矩陣左對角線上所有元素的總和。

  • 然後,for迴圈遍歷範圍 0 到 m(大小)中的每個元素,並將這些值新增到 *left_diagonal* 中。

  • 最後,輸出語句列印“*左對角線之和:*”,後跟儲存在 *left_diagonal* 中的內容。給出了 MAX 設定為 50 且 T 為另一個 4x4 陣列的示例。

MAX = 50
def sumofleftdiagonal (matrix, m):
   left_diagonal = 0
   for i in range(0, m):
      left_diagonal += matrix[i][i]
   print("Sum of Left Diagonal is:", left_diagonal)
T = [[ 11, 12, 33, 24 ],
   [ 54, 69, 72, 84 ],
   [ 14, 22, 63, 34 ],
   [ 53, 64, 79, 83 ]]
sumofleftdiagonal (T, 4)

輸出

時間複雜度為 O(N),因為它需要一個迴圈來迭代 N 個元素。由於沒有消耗額外的空間,輔助空間複雜度為 O(1)。

Sum of Left Diagonal is: 226

結論

在本文中,我們簡要討論了使用 Python 程式計算矩陣左對角線之和的兩種簡單方法。第一種方法使用兩個迴圈來完成我們提供的任務,而第二種方法為我們提供了一種更有效的方法來完成相同的任務,但路徑更短。

更新於:2023年4月21日

532 次瀏覽

開啟您的職業生涯

完成課程獲得認證

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