Swift 程序检查给定方阵是否为单位矩阵


在本文中,我们将学习如何编写一个 Swift 程序来检查给定的方阵是否为单位矩阵。单位矩阵是一个 MxM 的方阵,其中主对角线由 1 组成,其他元素均为 0。例如 -

$\mathrm{M\:=\:\begin{bmatrix}1 & 0 & 0 & 0\newline0 & 1 & 0 & 0 \newline0 & 0 & 1 & 0 \newline0 & 0 & 0 & 1\end{bmatrix}}$

而方阵是指行数等于列数的矩阵,它可能包含 0 和 1,也可能包含其他数字。例如 -

$\mathrm{M\:=\:\begin{bmatrix}1 & 3 & 4 & 0\newline6 & 4 & 0 & 6 \newline3 & 6 & 1 & 0 \newline4 & 4 & 0 & 1\end{bmatrix}}$

算法

步骤 1 - 创建一个函数来检查给定矩阵是否为单位矩阵。

步骤 2 - 在此函数中,我们首先通过检查行数和列数来检查给定矩阵是否为方阵。

步骤 3 - 使用 for 循环,我们检查主对角线上存在的所有元素是否都为 1。

步骤 4 - 使用嵌套 for 循环,我们检查除对角线元素之外的所有元素是否都为 0。

步骤 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 组成(主对角线的所有元素)?

  • 除主对角线外的元素是否都为 0?

如果上述任何一个条件返回 false,则给定矩阵不是单位矩阵。或者,如果上述三个条件都返回 true,则给定矩阵是单位矩阵。

结论

这就是我们如何检查给定的方阵是否为单位矩阵。如果将两个单位矩阵相乘,则结果矩阵也是单位矩阵。

更新于: 2023-01-09

197 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告