前言:
本文的讨论范围仅限于自然数集;
本文中,记 f ( x , y ) f(x,y) f(x,y)为区间 [ x , y ] [x, y] [x,y]的异或和。
准备·其一
首先,让我们观察如下的一些示例
1 = 2-1
[0, 0] 00
[1, 1] 01
3 = 4-1
[0, 1] 00 01
[2, 3] 10 11
7 = 8-1
[0, 3] 000 001 010 011
[4, 7] 100 101 110 111
15 = 16-1
[0, 7] 0000 0001 0010 0011 0100 0101 0110 0111
[8, 16] 1000 1001 1010 1011 1100 1101 1110 1111
想必诸君不难看出,对于 2 k − 1 ( k ≥ 2 ) 2^k-1(k \ge 2) 2k−1(k≥2),将其二分,于其二进制,可发现某种对称性。
显然,有
f ( 0 , 2 k − 1 − 1 ) = f ( 2 k − 1 , 2 k − 1 ) ( k ≥ 2 ) (1) f(0,2^{k-1}-1)=f(2^{k-1},2^k-1)(k \ge 2)\tag{1} f(0,2k−1−1)=f(2k−1,2k−1)(k≥2)(1)
不过,上述式子对于 2 1 2^1 21并不成立。
有意思的是,
{ f ( 0 , 2 k − 1 − 1 ) = f ( 2 k − 1 , 2 k − 1 ) = 1 ( k = 2 ) f ( 0 , 2 k − 1 − 1 ) = f ( 2 k − 1 , 2 k − 1 ) = 0 ( k > 2 ) \begin{cases} f(0,2^{k-1}-1)=f(2^{k-1},2^k-1) = 1 \quad (k = 2)\\ f(0,2^{k-1}-1)=f(2^{k-1},2^k-1) = 0 \quad (k > 2) \end{cases} { f(0,2k−1−1)=f(2k−1,2k−1)=1(k=2)f(0,2k−1−1)=f(2k−1,2k−1)=0(k>2)
各位可在阅读结束后再回看此处,这对于后文并无实质性帮助。
让我们先忽略这个特例,那么由 ( 1 ) (1) (1)式,我们可证一个对后文证明有利的式子,即
f ( 0 , 2 k ) = 2 k ( k ≥ 2 ) (2) f(0,2^k)=2^k(k \ge 2)\tag{2} f(0,2k)=2k(k≥2)(2)
前式等价于
f ( 0 , 2 k − 1 ) = 0 ( k ≥ 2 ) (2*) f(0,2^k-1) = 0 (k \ge 2)\tag{2*} f(0,2k−1)=0(k≥2)(2*)
这是因为 f ( 0 , 2 k ) = f ( 0 , 2 k − 1 ) ⊕ 2 k . f(0,2^k) = f(0,2^k-1) \oplus 2^k. f(0,2k)=f(0,2k−