XOR 的不等式

Inequality with XOR

Given XOR 的逆运算是 XOR。

只考虑非负整数。 给定 3 个整数,alowhigh。我们想要找到所有整数,b,这样:

low <= a^b <= high

令低=2,高=6,a=1,b可变。

2 <= 1^b <= 6

因为 XOR 是 XOR 的逆运算,所以在不等式的每一边做 1^

1^2 <= 1^1^b <= 1^6

简化为

3 <= b <= 7

这是不正确的。

  1. 根据这个 b 的最小值,其中 2 <= 1^b <= 6 为 3,但最小值为 2。
  2. b 可以取值 6 但 1^6 = 7 不属于 2 to 6
  3. 的范围

我做错了什么?

你错误地假设 XOR 是单调的,并且下面这两个等式相等:

2 <= 1^b <= 6 ............... 1^2 <= 1^1^b <= 1^6

这 属性 根本不是真的,通过异或不同的数字你可能会改变顺序。 XOR 1 简单地意味着你切换位 1,因此 2 将变为 3,但 3 将变为 2.