在 Python 中按位 AND 查找所有对的 XOR 和的程序

假设我们有两个数组 arr1 和 arr2。列表的异或和是其所有元素的按位异或。如果列表只有一个元素,那么它的异或和就是元素本身。现在,考虑列表具有每个索引对 (i, j) 的 arr1[i] AND arr2[j](按位与)的结果,其中 0 <= i < arr1 的长度和 0 <= j < arr2 的长度。我们必须找到该列表的 XOR 和。

因此,如果输入类似于 arr1 = [5,3,4] arr2 = [2,6],那么输出将为 0,因为列表是 [5 AND 2, 5 AND 6, 3 AND 2, 3 AND 6 , 4 AND 2, 4 AND 6] = [0, 4, 2, 2, 0, 4], 现在异或和为 [0 XOR 4 XOR 2 XOR 2 XOR 0 XOR 4] = 0

示例

让我们看下面的实现来更好地理解

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

以上是 在 Python 中按位 AND 查找所有对的 XOR 和的程序 的全部内容, 来源链接: utcz.com/z/357389.html

回到顶部