Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)으로 주어진 두 행렬이 동일한지 확인하는 프로그램

이 글에서는 두 개의 행렬이 주어졌을 때, 두 행렬이 서로 동일한지 확인하는 파이썬 프로그램을 다룹니다. 두 행렬은 같은 차수(order)를 가지며, 두 행렬이 완전히 동일하려면 행과 열의 개수가 같아야 하고, 모든 대응하는 원소들도 서로 같아야 합니다.

알고리즘

1단계: 두 개의 행렬을 생성합니다.
2단계: 첫 번째 행렬과 두 번째 행렬의 모든 원소를 순회(traverse)하면서,
       첫 번째 행렬의 각 원소를 두 번째 행렬의 해당 원소와 비교합니다.
3단계: 모든 원소가 서로 같다면 두 행렬은 동일한 것입니다.

예제 코드

아래 코드는 사용자로부터 두 개의 n×n 행렬을 입력받아, 각 원소를 비교한 뒤 두 행렬이 동일한지 판별합니다.

# 주어진 두 행렬이 동일한지
# 확인하는 프로그램

# A[][]와 B[][]가 동일하면 1을 반환하고,
# 그렇지 않으면 0을 반환하는 함수
def areSame(A, B):
   for i in range(n):
      for j in range(n):
         if (A[i][j] != B[i][j]):
            return 0
   return 1

# 드라이버 코드
A = []
n = int(input("Enter n for n x n matrix : "))    # 여기서는 3 입력
# 2차원 배열을 저장하기 위해 리스트 사용
# 사용자 입력을 받아 리스트에 저장 (여기서는 1부터 9까지 입력)
print("Enter the element ::>")
for i in range(n):
   row = []                                      # 행을 저장할 임시 리스트
   for j in range(n):
      row.append(int(input()))                   # 입력값을 행 리스트에 추가
   A.append(row)                                 # 완성된 행을 리스트에 추가

print(A)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 2차원 배열을 행렬 형태로 출력
print("Display Array In Matrix Form")
for i in range(n):
   for j in range(n):
      print(A[i][j], end=" ")
   print()

B = []
n = int(input("Enter N for N x N matrix : "))    # 여기서는 3 입력
# 2차원 배열을 저장하기 위해 리스트 사용
# 사용자 입력을 받아 리스트에 저장 (여기서는 1부터 9까지 입력)
print("Enter the element ::>")
for i in range(n):
   row = []                                      # 행을 저장할 임시 리스트
   for j in range(n):
      row.append(int(input()))                   # 입력값을 행 리스트에 추가
   B.append(row)                                 # 완성된 행을 리스트에 추가

print(B)
# [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

# 2차원 배열을 행렬 형태로 출력
print("Display Array In Matrix Form")
for i in range(n):
   for j in range(n):
      print(B[i][j], end=" ")
   print()

if (areSame(A, B) == 1):
   print("Matrices are identical")
else:
   print("Matrices are not identical")

# 이 코드는 Anant Agarwal이 기여했습니다.

실행 결과

Enter n for n x n matrix : 2
Enter the element ::>
1
1
2
2
[[1, 1], [2, 2]]
Display Array In Matrix Form
1 1 
2 2 
Enter N for N x N matrix : 2
Enter the element ::>
1
1
2
2
[[1, 1], [2, 2]]
Display Array In Matrix Form
1 1 
2 2 
Matrices are identical