使用多維陣列的Swift程式實現矩陣乘法
在這篇文章中,我們將學習如何編寫一個Swift程式,使用多維陣列來實現兩個矩陣的乘法。
矩陣是一種數學結構,其元素以行和列的形式排列。例如,第一個元素位於a00位置,第二個位於a01位置,以此類推。因此,要乘以兩個矩陣,我們將第一個矩陣的第m行乘以第二個矩陣的第n列,並將乘積相加。這將建立一個位於結果矩陣的第m行和第n列的元素。例如:
矩陣1:
$\mathrm{\begin{bmatrix}2 & 3 & 4 \newline5 & 2 & 7 \newline9 & 3 & 2\end{bmatrix}}$
矩陣2:
$\mathrm{\begin{bmatrix}4 & 7 & 1 \newline1 & 1 & 4 \newline5 & 7 & 2\end{bmatrix}}$
所以積 = 矩陣1 * 矩陣2
$\mathrm{\begin{bmatrix}(2^{*}4+3^{*}1+4^{*}4) & (2^{*}7+3^{*}1+4^{*}7) & (2^{*}1+3^{*}4+4^{*}2) \newline(5^{*}4+2^{*}1+7^{*}4) & (5^{*}7+2^{*}1+7^{*}7) & (5^{*}1+2^{*}4+7^{*}2) \newline(9^{*}4+3^{*}1+2^{*}4) & (9^{*}7+3^{*}1+2^{*}7) & (9^{*}1+3^{*}4+2^{*}2)\end{bmatrix}}$
$\mathrm{\begin{bmatrix}27 & 45 & 22 \newline50 & 86 & 27 \newline47 & 80 & 25\end{bmatrix}}$
演算法
步驟1 - 定義行和列的大小。
步驟2 - 使用多維陣列建立兩個具有相同行和列的矩陣。
步驟3 - 建立一個具有相同行和列數的空矩陣。
步驟4 - 執行巢狀for迴圈來迭代兩個矩陣的每個元素。
步驟5 - 將矩陣1中[x][z]位置的元素與矩陣2的行中的每個元素相乘,並將值相加,將值儲存在結果矩陣的[x][y]位置。此過程將持續到矩陣1的最後一個元素。
步驟6 - 列印結果矩陣。
示例
以下是使用多維陣列實現兩個矩陣乘法的Swift程式。
import Foundation
import Glibc
// Size of the matrix
var row = 4
var col = 4
// Creating 4x4 matrix of integer type
var matrix1 : [[Int]] = [[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3], [4, 4, 4, 4]]
print("Matrix 1:")
for x in 0..<row {
for y in 0..<col {
print(matrix1[x][y], terminator:" ")
}
print("\n")
}
var matrix2 : [[Int]] = [[1, 0, 0, 1], [2, 0, 0, 2], [3, 0, 0, 3], [4, 0, 0, 4]]
print("Matrix 2:")
for x in 0..<row {
for y in 0..<col {
print(matrix2[x][y], terminator:" ")
}
print("\n")
}
// Creating 4x4 matrix to store the result
var Mul = Array(repeating: Array(repeating: 0, count: 4), count: 4)
// Multiply two matrices
// Using * operator
for x in 0..<row {
for y in 0..<col {
for z in 0..<row {
Mul[x][y] += matrix1[x][z] * matrix1[z][y]
}
}
}
print("Resultant matrix:")
for x in 0..<row {
for y in 0..<col {
print(Mul[x][y], terminator:" ")
}
print("\n")
}
輸出
Matrix 1: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 Matrix 2: 1 0 0 1 2 0 0 2 3 0 0 3 4 0 0 4 Resultant matrix: 10 10 10 10 20 20 20 20 30 30 30 30 40 40 40 40
在上面的程式碼中,我們建立了兩個4x4矩陣以及值,並使用多維陣列建立了一個空的4x4矩陣來儲存結果。現在,我們執行巢狀for迴圈來迭代兩個矩陣的每個元素。現在,我們使用*運算子將矩陣1中[x][z]位置的元素與矩陣2的行中的每個元素相乘,並將值相加,並將結果儲存在結果矩陣的[x][y]位置。對矩陣1的所有元素重複此過程。
結論
因此,這就是我們如何使用多維陣列進行矩陣乘法。您還可以使用多維陣列建立任何大小的矩陣,例如4x4、6x3和2x3,並能夠對其進行乘法運算。
資料結構
網路
關係型資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP