其实我是想破解Hackerrank中的"Xoring“。
https://www.hackerrank.com/challenges/xoring-ninja/problem
设A是一组N元素{a1,a2,.,aN} 集合A的XORSUM定义为所有A的非空子集的异或之和。
设S= XORSUM
S= (a1 + a2 + . + aN) + (a1 ^ a2) + (a1 ^ aN) ++{3个大小的子集}+.+ (a1 ^ a2 ^.^ aN)
设T= (a1 ^ a2 ^.^ aN)
则S=T^ (S )
S^S=S^T^()
0=T^S^()
T^0=T^T^S^()
T=S^()
我想知道如何用位运算符来求解任何涉及+-*/的方程?
发布于 2018-01-08 14:09:48
A XOR (A-4)=5
5的二进制表示是101,所以我们知道A和A-4的位值非常相同,除了第一位和第三位(从右到左)。由于第四位数不变(否则数字会大于或等于8),所以A的第三位是1,但最重要的线索是,5是奇数,我们是A与A- 4的异或-ing A。我们知道,最后一点的值决定了它是对还是奇数,我们知道,如果是奇数,减去或把一对数加到一个整数上,如果它是奇数,它就会离开它,所以如果A是奇数,A-4将是奇数,如果A是对,则A-4将是奇数。按位异或-使用另一对数的对数或带有另一个奇数的奇数将产生对号。所以,XOR (A-4)=5对无符号整数没有解,如果我们分配给它们的内存空间是无限的。
这就是你如何在你的头脑中解决它。当然,对于每种类型的方程都可以给出更详细的解释,但是任何涉及位运算的方程类型的解都是一个完全的字段,它跨越了一个这样的答案的边界。如果您想编程,那么您将有一个困难的项目实现,但始终从最简单的,显而易见的。
https://stackoverflow.com/questions/48149810
复制相似问题