Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python nhân hai ma trận

Bài toán: cho hai ma trận, nhân chúng và in kết quả. Điều kiện: số cột ma trận đầu = số hàng ma trận thứ hai.

Cách 1: Brute-force (ba vòng lặp lồng)

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]

Cách 2: Dùng hàm zip

A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
B = [[5, 3, 3], [6, 5, 4], [0, 2, 0]]

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]

Kết luận

Đã học nhân hai ma trận trong Python.