假设a,b,c是三个整数。然后对它们进行异或运算,得到 d = a ^ b ^ c。
如果我只知道“a”和“d”,而a、b、c之间没有关系。有没有办法检查“a”是否被用来产生“d”?
例如:
d = a ^ b ^ c;
func(a, d); //returns true
func(b, d); //returns true
func(f, d); //returns false, for f!=a, f!=b, f!=c
我的意思是“d”是“a^b^c”的结果,我们事先并不知道。现在给定“d”和一个数字“x”,我可以检查 x 是 a、b 还是 c 之一吗?
抱歉,我忘记提及 a、b、c、d 在这里不是布尔变量。我用它们来代表任何编程语言中的整数。所以 d = a^b^c 是按位运算。例如,d 等于 2^18^19 的结果。