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

Tìm ma trận gốc khi biết phần tử lớn nhất hàng và cột trong Python


Cho hai mảng A (kích thước N) và B (kích thước M) cùng một ma trận nhị phân N x M (1: vị trí có số nguyên dương trong ma trận gốc, 0: vị trí là 0). Ta cần xây dựng ma trận gốc sao cho A[i] là phần tử lớn nhất hàng i, B[j] là phần tử lớn nhất cột j.

Quy tắc: tại vị trí (i, j) nếu ma trận nhị phân là 1 thì giá trị = min(A[i], B[j]), ngược lại là 0.

Ví dụ minh họa

def print_original_mat(A, B, mat):
    N = len(A)
    M = len(B)
    for i in range(N):
        for j in range(M):
            if mat[i][j] == 1:
                print(min(A[i], B[j]), end=" ")
            else:
                print(0, end=" ")
        print()

A = [4, 2, 3]
B = [3, 1, 0, 0, 4, 0, 5]
mat = [
    [1, 0, 0, 0, 1, 0, 1],
    [0, 0, 1, 0, 0, 1, 1],
    [1, 1, 0, 1, 1, 0, 0]
]
print_original_mat(A, B, mat)

Đầu vào

[4, 2, 3], [3, 1, 0, 0, 4, 0, 5], [[1,0,0,0,1,0,1], [0,0,1,0,0,1,1], [1,1,0,1,1,0,0]]

Đầu ra

3 0 0 0 4 0 4
0 0 0 0 0 0 2
3 1 0 0 3 0 0