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

王林
發布: 2023-09-17 23:33:05
轉載
1373 人瀏覽過

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 中。

  • #最後,輸出語句印出“Sum of Left Diagonal is:”,後面跟著儲存在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程式計算矩陣左對角線之和的兩種簡單方法。第一種方法使用兩個循環來完成提供給我們的任務,而第二種方法為我們提供了以更短的路徑完成相同任務的有效方法。

以上是Python程式計算矩陣左對角線之和的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!