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,則給定矩陣是單位矩陣。
結論
這就是我們如何檢查給定的方陣是否為單位矩陣。如果將兩個單位矩陣相乘,則結果矩陣也是單位矩陣。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP