ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง
ข้อกำหนดปัญหา − เราได้รับสองเมทริกซ์ ต้องคูณพวกเขาและพิมพ์ผลลัพธ์
สำหรับเมทริกซ์สองตัวที่จะคูณกัน คอลัมน์ของเมทริกซ์แรกต้องเหมือนกับแถวของเมทริกซ์ที่สอง
ทุกครั้งที่เงื่อนไขนี้เป็นจริง การคำนวณจะทำงาน
มาสังเกตแนวคิดในการนำไปใช้ด้านล่าง
วิธีที่ 1 − Brute-force method
ตัวอย่าง
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
B = [[5, 3, 3],
[6, 5, 4],
[0, 2, 0]]
result = [[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
# วนตามแถว
for i in range(len(A)):
# วนตามคอลัมน์
for j in range(len(B[0])):
# วนตามแถว
for k in range(len(B)):
result[i][j] += A[i][k] * B[k][j]
for ele in result:
print(ele)
ผลลัพธ์
[17, 19, 11] [50, 49, 32] [83, 79, 53]
วิธีที่ 2 − ใช้ฟังก์ชัน zip
ตัวอย่าง
A = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
B = [[5, 3, 3],
[6, 5, 4],
[0, 2, 0]]
# ใช้ built-in zip function
result = [[sum(a * b for a, b in zip(A_row, B_col))
for B_col in zip(*B)]
for A_row in A]
for ele in result:
print(ele)
ผลลัพธ์
[17, 19, 11] [50, 49, 32] [83, 79, 53]
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีคูณสองเมทริกซ์ ทั้งวิธี brute-force และวิธีใช้ zip ที่เป็น Pythonic กว่า