Swift程序 检查给定的方阵是否是单位矩阵
在这篇文章中,我们将学习如何编写一个Swift程序来检查一个给定的正方形矩阵是否是单位矩阵。单位矩阵是一个MxM的正方形矩阵,其中主对角线由1组成,其他元素都是0。比如说
而正方形矩阵是一个行数等于列数的矩阵,它可能包含也可能不包含0和1,也就是说除了0和1之外,还包含其他数字。比如说
算法
第1步 – 创建一个函数来检查给定的矩阵是否为单位矩阵。
第2步 – 在这个函数中,首先我们通过检查行和列的总数来检查给定的矩阵是否为方阵。
第3步 – 使用for循环,我们检查所有存在于主对角线的元素应该是一个。
第4步 – 使用嵌套的for循环,我们检查除对角线元素以外的所有元素是否为零。
第5步 – 如果第2、3、4步中提到的所有条件都是真的,那么这个函数将返回true。否则,返回false。
第6步 – 创建三个整数类型的测试矩阵。
第7步 – 调用该函数并将创建的矩阵作为参数传给它。
第8步 – 打印输出。
示例
以下是Swift程序,用于检查给定的正方形矩阵是否为同一矩阵。
import Foundation
import Glibc
func CheckIdentityMatrix(mxt:[[Int]])->Bool
{
// Verifying the given matrix is the square matrix
if mxt.count != mxt[0].count
{
return false
}
for x in 0..<mxt.count
{
if mxt[x][x] != 1
{
return false
}
}
for m in 0..<mxt.count
{
for n in 0..<mxt[0].count
{
if m != n && mxt[m][n] != 0
{
return false
}
}
}
return true
}
var matrix1 = [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
print("Is matrix 1 is an identity matrix?: ", CheckIdentityMatrix(mxt: matrix1))
var matrix2 = [[0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 0, 0, 1]]
print("Is matrix 2 is an identity matrix?: ", CheckIdentityMatrix(mxt: matrix2))
var matrix3 = [[2, 1, 4], [2, 1, 1], [4, 5, 0], [3, 4, 1]]
print("Is matrix 3 is an identity matrix?: ", CheckIdentityMatrix(mxt: matrix3))
输出
Is matrix 1 is an identity matrix?: true
Is matrix 2 is an identity matrix?: false
Is matrix 3 is an identity matrix?: false
在上述代码中,我们创建了一个函数来检查给定的矩阵是否为同一矩阵。因此,为此,我们检查给定矩阵的三个不同条件 –
- 给定的矩阵是否是方阵?
-
给定矩阵的主对角线由1(主对角线的所有元素)或不由1组成。
-
主对角线以外的元素应该是零或者不是。
如果上述任何一个条件返回错误,那么给定的矩阵就不是单位矩阵。或者,如果上述三个条件都返回true,那么给定的矩阵就是一个单位矩阵。
结论
因此,这就是我们如何判断一个给定的正方形矩阵是否是一个单位矩阵。如果你把两个相同的矩阵相互相乘,那么结果矩阵也是相同的矩阵。