π₯ ΠΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΌΠ½ΠΎΠΆΠ°ΡΡ Π΄Π²Π΅ ΠΌΠ°ΡΡΠΈΡΡ Π² Python: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΈ Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ πͺ
Π Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ ΠΌΠ°ΡΡΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ *
. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌ, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΡΡΠΎΠΊ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅.
# ΠΡΠΈΠΌΠ΅Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π²ΡΡ
ΠΌΠ°ΡΡΠΈΡ Π² Python
A = [[1, 2, 3],
[4, 5, 6]]
B = [[7, 8],
[9, 10],
[11, 12]]
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
C = [[0, 0],
[0, 0]]
# ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
C[i][j] += A[i][k] * B[k][j]
# ΠΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΡΡ
for row in C:
print(row)
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΡΠ΅Π·ΡΠ»ΡΡΠΈΡΡΡΡΠ°Ρ ΠΌΠ°ΡΡΠΈΡΠ° C
, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΡ A
ΠΈ B
.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ ΠΌΠ°ΡΡΠΈΡΡ Π² ΠΏΠΈΡΠΎΠ½Π΅?
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡ - ΡΡΠΎ Π²Π°ΠΆΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΠ΅, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ ΠΌΠ°ΡΡΠΈΡΡ Π² Python ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π°.
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΡΡΠΎΠΊ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ. ΠΡΠ»ΠΈ A - ΠΌΠ°ΡΡΠΈΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ m x n, Π° B - ΠΌΠ°ΡΡΠΈΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ n x p, ΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΠΈΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΡΡΠΈΡΠ° C ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ m x p, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ C[i][j] Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΡΡΠΌΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠ°ΡΡΠΈΡΡ A Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΡΡΠΎΠ»Π±Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ B.
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΡ.
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π²ΡΡ
ΠΌΠ°ΡΡΠΈΡ
matrix1 = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
matrix2 = [[10, 11],
[12, 13],
[14, 15]]
# ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΠ°ΡΡΠΈΡ
m = len(matrix1)
n = len(matrix2)
p = len(matrix2[0])
# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
result = [[0 for _ in range(p)] for _ in range(m)]
# Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡ
for i in range(m):
for j in range(p):
for k in range(n):
result[i][j] += matrix1[i][k] * matrix2[k][j]
# ΠΡΠ²ΠΎΠ΄ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°
print("Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ:")
for row in result:
print(row)
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ:
[76, 83]
[184, 203]
[292, 323]
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ΄?
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄Π²Π΅ ΠΌΠ°ΡΡΠΈΡΡ: matrix1 ΠΈ matrix2. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠΈΡ (m, n ΠΈ p), Π³Π΄Π΅ m - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, n - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ / ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, p - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π²ΡΠΎΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΡΡΡ ΠΌΠ°ΡΡΠΈΡΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ result, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ.
ΠΠ°Π»Π΅Π΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΈΠΊΠ»Π° for Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΠ½Π΅ΡΠ½ΠΈΠΉ ΡΠΈΠΊΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΡΠΈΠΊΠ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ Π²ΡΠΎΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ, Π° ΡΠ°ΠΌΡΠΉ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΡΡΠΌΠΌΡ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΡΡ A ΠΈ B.
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡ Π² Python ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ. ΠΠ°Π΄Π΅ΡΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΠΌΠ½ΠΎΠΆΠΈΡΡ Π΄Π²Π΅ ΠΌΠ°ΡΡΠΈΡΡ Π² Python.