我的一个论坛提到给定的数组n
数字:
arr[0........n-1]
以下条件成立,^
is the xor
运算符`
f(l,r) = f(0,r) ^ f(0,l-1)
where f(l,r) = arr[l]^arr[l+1]^........arr[r]
我检查了上面的数组数量和不同的值l
and r
and YES, 是真的。但我不明白怎么办?
有人可以解释一下这背后的逻辑吗?
使用 XOR 的最简单性质
f(0,r) ^ f(0,l-1) = f(l,r)
=> (f(0,r) ^ f(0,l-1)) ^ f(0,l-1) = f(0,l-1) ^ f(l,r)
=> f(0,r) = f(l,r) ^ f(0,l-1) [Since XOR is associative f(0,l-1) ^ f(0,l-1) = 0 and x ^ 0 = x]
=> f(0,r) = (arr[0]^...arr[l-1])^(arr[l]^...^arr[r])
这是定义f(0,r)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)