Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python คูณสองเมทริกซ์

ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง

ข้อกำหนดปัญหา − เราได้รับสองเมทริกซ์ ต้องคูณพวกเขาและพิมพ์ผลลัพธ์

สำหรับเมทริกซ์สองตัวที่จะคูณกัน คอลัมน์ของเมทริกซ์แรกต้องเหมือนกับแถวของเมทริกซ์ที่สอง

ทุกครั้งที่เงื่อนไขนี้เป็นจริง การคำนวณจะทำงาน

มาสังเกตแนวคิดในการนำไปใช้ด้านล่าง

วิธีที่ 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 กว่า