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

파이썬에서 비트 AND의 모든 쌍의 XOR 합을 찾는 프로그램

<시간/>

두 개의 배열 rr1과 arr2가 있다고 가정합니다. 목록의 XOR 합은 모든 요소의 비트별 XOR입니다. 목록에 요소가 하나만 있는 경우 해당 XOR 합계는 요소 자체가 됩니다. 이제 목록에 0 <=i

따라서 입력이 arr1 =[5,3,4] arr2 =[2,6]과 같으면 목록이 [5 AND 2, 5 AND 6, 3 AND 2, 3 AND 6이기 때문에 출력은 0이 됩니다. , 4 AND 2, 4 AND 6] =[0, 4, 2, 2, 0, 4], 이제 XOR 합은 [0 XOR 4 XOR 2 XOR 2 XOR 0 XOR 4] =0

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

  • xor1 :=0

  • xor2 :=0

  • arr1의 각각에 대해 수행

    • xor1 :=xor1 XOR a

  • arr2의 각각에 대해 수행

    • xor2 :=xor2 XOR a

  • xor1 및 xor2 반환

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

def solve(arr1, arr2):
   xor1 = 0
   xor2 = 0
   for a in arr1:
      xor1 ^= a
   for a in arr2:
      xor2 ^= a
   return xor1 & xor2

arr1 = [5,3,4]
arr2 = [2,6]
print(solve(arr1, arr2))

입력

[5,3,4], [2,6]

출력

0