Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单个值的按位异或校验和?_Python - Fatal编程技术网

Python 单个值的按位异或校验和?

Python 单个值的按位异或校验和?,python,Python,我正在对数组进行位校验和 0^1^2^3^4^6 == 2. 17^18^19^20^21^22^23^25^26^29 == 14. 12^ == ? 但是,有时可能只有一个值 对于单个值,数组校验和的等价物是什么?摘要:X^0==X对于任何X,这就是为什么12的结果等于12^0,即12 我在数学上并不精确,但对于一个操作,可能存在一个“中立”值,它什么也不做: 此外,它是0:X+0==X 对于乘法,它是1:X*1==X 对于AND(逻辑,按位),它是True或位值1 等等 始终可

我正在对数组进行位校验和

0^1^2^3^4^6 == 2.

17^18^19^20^21^22^23^25^26^29 == 14.

12^ == ?
但是,有时可能只有一个值


对于单个值,数组校验和的等价物是什么?

摘要:
X^0==X
对于任何
X
,这就是为什么12的结果等于
12^0
,即12


我在数学上并不精确,但对于一个操作,可能存在一个“中立”值,它什么也不做:

  • 此外,它是0:
    X+0==X
  • 对于乘法,它是1:
    X*1==X
  • 对于AND(逻辑,按位),它是
    True
    或位值1
等等

始终可以插入中性值而不更改结果。这意味着,例如,空数字列表的和为0,乘积为1。您自然会将该值用作
sum(alist)
product(alist)
实现的起点:

total = 0; for x in alist: total = total + x

prod = 1; for x in alist: prod = prod * x
回到你的问题,XOR的中性值是0。我们将xor写成:

def xor(*args):
    result = 0
    for x in args:
        result ^= x
    return result
然后:

>>> xor(17,18,19,20,21,22,23,25,26,29)
14
>>> xor(0,1,2,3,4,6)
2
>>> xor()
0
>>> xor(12)
12

您可以发布您尝试过的代码吗?通常,您使用“参考”值开始校验和计算。