Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 행렬의 모든 행에 공통적인 고유 요소 찾기


m x m 차수의 정방 행렬이 있다고 가정합니다. 주어진 행렬의 모든 행에 공통적인 모든 고유한 요소를 찾아야 합니다.

따라서 입력이 다음과 같으면

13 2 15 4 17
15 3 2 4 36
15 2 15 4 12
15 26 4 3 2
2 19 4 22 15

출력은 [2,4,15]

가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • sortRows() 함수를 정의합니다. 매트릭스가 필요합니다.

  • n :=행 수

  • 0에서 n 사이의 i에 대해 수행

    • 목록 행렬 정렬[i]

  • 주요 방법에서 다음을 수행하십시오 -

  • n :=행 수

  • sortRows(행렬)

  • current_idx :=크기가 n인 목록, 0으로 채움

  • 0에서 n 사이의 i에 대해 수행

    • current_idx[i] :=0

  • f :=0

  • 동안 current_idx[0]

    • 값 :=행렬[0, current_idx[0]]

    • 현재 :=사실

    • 범위 1에서 n까지의 i에 대해 수행

      • 동안 (current_idx[i]

        • current_idx[i] :=current_idx[i] + 1

      • 행렬[i, current_idx[i] - 1]이 값과 같지 않으면

        • 현재 :=거짓

      • current_idx[i]가 n과 같으면

        • f :=1

        • 루프에서 나오다

    • 존재하는 경우 0이 아닌 경우

      • 표시 값

    • f가 1과 같으면

      • 루프에서 나오다

    • current_idx[0] :=current_idx[0] + 1

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

MAX =100def sortRows(matrix):n =len(matrix) in range(0, n):matrix[i].sort();def find_common(matrix):n =len(matrix) sortRows( 행렬) current_idx =[0] * n for i in range (0, n):current_idx[i] =0 f =0 while(current_idx[0]  

입력

<미리>[[13, 2, 15, 4, 17],[15, 3, 2, 4, 36],[15, 2, 15, 4, 12],[15, 26, 4, 3, 2 ],[2, 19, 4, 22, 15]]

출력

2, 4, 15,