Swift程式計算矩陣元素行和


矩陣是數字在行和列中排列的結構。矩陣可以是多種型別,例如方陣、橫向矩陣、縱向矩陣等。

在這篇文章中,我們將學習如何編寫一個Swift程式來計算矩陣元素的各行之和。我們將使用以下方法來查詢行元素的總和:

  • 使用巢狀for-in迴圈

  • 使用內建函式

方法1:使用巢狀for-in迴圈

這裡我們使用巢狀for-in迴圈來查詢矩陣元素的各行之和。

演算法

步驟1 - 建立一個函式。

步驟2 - 建立一個名為sum的變數來儲存總和。sum的初始值為0。

步驟3 - 查詢行數和列數。

步驟4 - 執行巢狀for-in迴圈來迭代每一行和每一列。

步驟5 - 在此巢狀迴圈中,逐行新增元素並將結果儲存到sum變數中。

步驟6 - 每行之後,將sum的值重置為0,以便計算下一行的元素之和。

步驟7 - 建立一個矩陣並將其傳遞給函式。

步驟8 - 列印輸出。

示例

以下是計算矩陣元素各行之和的Swift程式。

import Foundation
import Glibc

// Function to find the sum of each row of a matrix
func rowElementsSum(matrix: [[Int]]) {
   var sum = 0
   let noRow = matrix.count
   let noColumn = matrix[0].count

   for R in 0..<noRow {
      for C in 0..<noColumn {
         sum += matrix[R][C]
      }
      print("Sum of row \(R) = \(sum)")

      // Reseting sum
      sum = 0
   }
}

// Input 4x3 matrix
let M = [[1, 2, 2], [1, 1, 6], [7, 8, 3], [2, 4, 2]]
print("Matrix is:")
for x in 0..<M.count {
   for y in 0..<M[0].count  {
      print(M[x][y], terminator:" ")
   }
   print("\n")
}

// Calling function
rowElementsSum(matrix: M)

輸出

Matrix is:
1 2 2
1 1 6
7 8 3
2 4 2
Sum of row 0 = 5
Sum of row 1 = 8
Sum of row 2 = 18
Sum of row 3 = 8

在上面的程式碼中,我們有一個4x3矩陣,然後將其傳遞給名為rowElementsSum()的函式以查詢矩陣的行元素之和。在這個函式中,我們使用巢狀for迴圈來迭代輸入矩陣的每個元素,然後將其新增到相應的行和中。完成巢狀for迴圈後,此函式返回行和,即行0 = 5,行1 = 8,行2 = 18,行3 = 8(根據輸入矩陣)。

方法2:使用內建函式

為了找到給定矩陣元素的各行之和,我們使用reduce(_:_:)函式。此函式使用給定的閉包組合陣列或任何序列的元素以返回結果。

語法

func reduce(_initial: Value, _next: Value)

這裡,initial表示用作初始累加值的值。它在第一次執行閉包時傳遞給下一個。next表示一個閉包,它將累加值和陣列的元素組合成一個新的累加值,如果進一步用於下一個next閉包的呼叫,或者返回給呼叫者。

演算法

步驟1 - 建立一個矩陣。

步驟2 - 列印矩陣。

步驟3 - 建立一個一維陣列來儲存各行之和。

步驟4 - 執行for迴圈來迭代每一行。

步驟5 - 使用reduce()函式查詢各行元素之和。

let sum = row.reduce(0, +)

步驟6 - 現在使用append()函式將每一行的總和儲存到陣列中。

RowsSum.append(sum)

步驟7 - 列印結果陣列。

示例

以下是計算矩陣元素各行之和的Swift程式。

import Foundation
import Glibc

// 5x3 matrix
let matrix = [[1, 2, 3, 4, 6], [4, 5, 6, 1, 1], [7, 8, 9, 5, 5]]

// Displaying matrix
print("Matrix is:")
for x in 0..<matrix.count {
   for y in 0..<matrix[0].count {
      print(matrix[x][y], terminator:" ")
   }
   print("\n")
}

// Calculating the sum of the rows elements of the matrix
var RowsSum = [Int]()
for row in matrix {
   let sum = row.reduce(0, +)
   RowsSum.append(sum)
}
print("So the sums of the individual rows are:", RowsSum)

輸出

Matrix is:
1 2 3 4 6
4 5 6 1 1
7 8 9 5 5
So the sums of the individual rows are: [16, 17, 34]

在上面的程式碼中,我們有一個5x3矩陣。然後建立一個空的一維陣列來儲存每一行的和。使用for迴圈,我們迭代給定矩陣的每一行,並使用reduce()函式新增該行的元素。然後將此總和儲存在RowsSum陣列中。因此,根據給定的矩陣,最終結果為[16, 17, 34]。其中16是行0元素(1+2+3+4+6)的和,17是行1元素(4+5+6+1+1)的和,依此類推。

結論

這就是我們計算矩陣元素各行之和的方法。使用上述方法,我們可以計算任何型別的矩陣的和,例如6x6、9x9、4x3、6x7等。

更新於:2023年2月16日

242 次瀏覽

開啟你的職業生涯

完成課程獲得認證

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