假设您有n个不同的数字,它们之间可能存在差异,也可能没有差距。如果您要对所有数字进行异或,那么您得到的结果是否可以保证不是这些数字中的任何一个?
答案 0 :(得分:3)
0b00 XOR 0b01 XOR 0b10 XOR 0b11 == 0b00
答案 1 :(得分:2)
没有
假设你的意思是数组中的第一个数字与第二个数字进行异或,并且结果与第3个相同,那么请考虑以下对应点:
[1,2,6,4]
使用二进制XOR,请参见下面的位表示:
100 XOR 010 = 110
110 XOR 011 = 101
101 XOR 001 = 100
数组中所有数字的XOR等于数组中的第一个数字。
答案 2 :(得分:1)
在这种情况下,数字0有一个非常有趣的特征:
a xor 0 = a, a != 0
这已经是问题答案的一半:
对任何集合{a, 0}, a != 0
的内容进行异或将导致a
结果。因此答案是否定的。
这可以进一步扩展:
对于任何一组数字N
,其中存在属性M
和M = N \ {a}
的子集xor(M) = 0
,xor(N) = a
成立。 M
具有以下属性:任何位位置上的1位数均为偶数:
N = {100, 010, 001, 011}
a = 100
M = {010, 001, 011}
M: 0 1 0
0 0 1
0 1 1
count: 0 2 2
xor(N) = 100