본문 바로가기
CS/이산수학

Algorithm of Boolean Product

by erase-jeong 2023. 10. 19.

삼중 for문으로 행렬 계산하기

 

def boolean_product(A, B):
    m = len(A)
    n = len(B[0])
    k = len(A[0])  # 또는 len(B)를 사용해도 됩니다.

    if len(B) != k:
        raise ValueError("행렬 A와 행렬 B의 크기가 일치하지 않습니다.")

    C = [[0] * n for _ in range(m)]

    for i in range(m):
        for j in range(n):
            cij = 0
            for q in range(k):
              C[i][j]=C[i][j]+(A[i][q] and B[q][j])
          

    return C

# 예제 입력 행렬 A와 B 생성
A = [[1, 0],[0,1],[1,0]]
B = [[1, 1,0],[0,1,1]]

# 행렬 곱셈 실행
C = boolean_product(A, B)

# 결과 출력
for row in C:
    print(row)

 

 

C = [[0] * n for _ in range(m)] : 2차원 리스트 C를 초기화하는 코드입니다.

 

m은 원하는 행의 수를 나타내며, n은 열의 수를 나타냄.

이 코드는 m 행과 n 열로 구성된 2차원 리스트를 생성하고, 모든 요소를 0으로 초기화

[[0] * n]은 길이가 n이고 모든 요소가 0인 리스트를 생성
[... for _ in range(m)]는 이러한 리스트를 m번 반복하여 행의 리스트를 생성
결과적으로, C는 m 행과 n 열로 구성된 2차원 리스트이며, 모든 요소가 0으로 초기화되어 있음.

이렇게 초기화된 행렬은 나중에 행렬 곱셈의 결과를 저장하는 데 사용됨