ในบทความนี้ เราจะเรียนรู้เกี่ยวกับวิธีแก้ปัญหาตามที่ระบุด้านล่าง
แจ้งปัญหา − เราได้เมทริกซ์สองตัว เราต้องคูณมันแล้วพิมพ์ผลลัพธ์ออกมา
เพื่อให้เมทริกซ์สองตัวคูณกัน คอลัมน์ของเมทริกซ์แรกจะต้องเหมือนกันทุกประการกับแถวของเมทริกซ์ที่สอง
ทุกครั้งที่มีการประเมินเงื่อนไขนี้เป็นการคำนวณจริง
ทีนี้มาดูแนวคิดในการใช้งานด้านล่างกัน:
แนวทางที่ 1 - วิธีบังคับแบบดุร้าย
ตัวอย่าง
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] ] # iterating by row for i in range(len(A)): # iterating by column for j in range(len(B[0])): # iterating by rows 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] ] # using 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]
บทสรุป
ในบทความนี้ เราได้เรียนรู้วิธีคูณเมทริกซ์สองตัว