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
在上面的代码中,我们有一个4×3的矩阵,然后将其传递给名为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]
在上面的代码中,我们有一个5×3矩阵。然后创建一个空的一维数组来存储每一行的和。使用for循环,我们遍历给定矩阵的每一行,并使用reduce()函数添加该行的元素。然后将这个和存储在RowsSum数组中。所以根据给定的矩阵,最终结果是[16, 17, 34]。这里16是第0行元素之和(1+2+3+4+6),17是第1行元素之和(4+5+6+1+1),依此类推。
结论
这就是我们如何计算矩阵元素的行之和。使用上述方法,我们可以计算任何类型的矩阵之和,如6×6、9×9、4×3、6×7等。