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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.