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 程式計算矩陣左對角線之和的兩種簡單方法。第一種方法使用兩個迴圈來完成我們提供的任務,而第二種方法為我們提供了一種更有效的方法來完成相同的任務,但路徑更短。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP