如何解决像X xor(A - 4)= 5的XOR方程?

时间:2018-01-08 11:56:17

标签: bit-manipulation bitwise-operators xor bitwise-xor

实际上,我试图在Hackerrank中解决“Xoring Ninja”。

https://www.hackerrank.com/challenges/xoring-ninja/problem

  

设A是一组N个元素{a1,a2,......,aN}

     

集合A的XORSUM在此定义为所有A的XOR的总和   非空子集。

设S = XORSUM

S =(a1 + a2 + ... + aN)+ [(a1 ^ a2)+(a1 ^ aN)+ ..] + {3大小的子集} + ... +(a1 ^ a2 ^。 .... ^ aN)

设T =(a1 ^ a2 ^ .... ^ aN)

然后S = T ^(S - T)

S ^ S = S ^ T ^(S-T)

0 = T ^ S ^(S-T)

T ^ 0 = T ^ T ^ S ^(S-T)

T = S ^(S - T)

我想知道如何解决任何涉及+ - * /与位运算符的方程式?

1 个答案:

答案 0 :(得分:0)

XOR(A-4)= 5

5的二进制表示为101,因此我们知道A和A - 4具有相同的位值,除了第一个和第三个(从右到左)。由于第四个数字没有变化(否则数字将大于或等于8),因此A的第三个数字为1,但最重要的线索是5为奇数,我们与A-4进行异或。我们知道数字的最后一位的值确定它是对还是奇数,并且我们知道减去或将一对数加到一个整数将使它变为奇数(如果它是奇数)并且如果它是对,则将它保持对,因此,如果A是奇数,则A-4将是奇数,如果A是对,则A-4将成对。按位对另一对编号的对编号或另一对编号的奇数编号将产生一对编号。因此,如果我们为它们分配了无限的内存空间,则XOR(A - 4)= 5没有无符号整数的解。

这就是你如何在脑海中解决它。当然,可以对每种类型的方程给出更详细的解释,但是涉及按位运算的任何方程类型的解是跨越SO答案边界的完整字段。如果你想对它进行编程,那么你将有一个难以实现的项目,但总是从最简单的,明显的开始。