Учитывая массив нечетных чисел или четных чисел, как можно эффективно получить пары этого массива, XOR == 2?
Например:
arr = [4,10,2,6,8]
pairs are: [(4,6), (8,10)] #4^6 == 2, 8^10 == 2
Или:
arr = [5,9,3,7,11]
pairs are: [(9,11), (5,7),]
Я сделал это, чтобы получить их (грубая сила)
for i in combinations(inev,2):#inev is the list of indices (positions of the numbers in the array)
if not (arr[i[0]] ^ arr[i[1]]) & 1 and (arr[i[0]] ^ arr[i[1]]) == 2:
print arr[i[0]], arr[i[1]] #I print the pair