浅说连续区间异或和

前言:
本文的讨论范围仅限于自然数集;
本文中,记 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) 2k1(k2),将其二分,于其二进制,可发现某种对称性

显然,有


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,2k11)=f(2k1,2k1)(k2)(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,2k11)=f(2k1,2k1)=1(k=2)f(0,2k11)=f(2k1,2k1)=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(k2)(2)
前式等价于
f ( 0 , 2 k − 1 ) = 0 ( k ≥ 2 ) (2*) f(0,2^k-1) = 0 (k \ge 2)\tag{2*} f(0,2k1)=0(k2)(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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值