XOR 的不等式
Inequality with XOR
Given XOR 的逆运算是 XOR。
只考虑非负整数。
给定 3 个整数,a
、low
和 high
。我们想要找到所有整数,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
这是不正确的。
- 根据这个
b
的最小值,其中 2 <= 1^b <= 6
为 3,但最小值为 2。
- b 可以取值 6 但
1^6 = 7
不属于 2 to 6
的范围
我做错了什么?
你错误地假设 XOR 是单调的,并且下面这两个等式相等:
2 <= 1^b <= 6 ............... 1^2 <= 1^1^b <= 1^6
这 属性 根本不是真的,通过异或不同的数字你可能会改变顺序。 XOR 1 简单地意味着你切换位 1,因此 2 将变为 3,但 3 将变为 2.
Given XOR 的逆运算是 XOR。
只考虑非负整数。
给定 3 个整数,a
、low
和 high
。我们想要找到所有整数,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
这是不正确的。
- 根据这个
b
的最小值,其中2 <= 1^b <= 6
为 3,但最小值为 2。 - b 可以取值 6 但
1^6 = 7
不属于2 to 6
的范围
我做错了什么?
你错误地假设 XOR 是单调的,并且下面这两个等式相等:
2 <= 1^b <= 6 ............... 1^2 <= 1^1^b <= 1^6
这 属性 根本不是真的,通过异或不同的数字你可能会改变顺序。 XOR 1 简单地意味着你切换位 1,因此 2 将变为 3,但 3 将变为 2.