「postOI」以另一种方式证明 FWT

记号

  • 代表或/与/异或卷积
  • 代表“拼接”,例如 AB 即将 B 接在 A 的后面;
  • +,,× 代表按位运算,例如 A+B={a0+b0,a1+b1,...,an+bn}
  • F(A) 代表 A 进行 fwt 后的序列;
  • A0 代表 A 的前半部分,A1 代表 A 的后半部分,A0A1=A

或卷积

直接给出或FWT的递归形式:

F(A)={F(A0)F(A0+A1)|A|>1A|A|=1

接下来是一些性质:

  • F(A+B)=F(A)+F(B),这一点比较明显;
  • F(AB)=F(A)×F(B),直接证明比较麻烦,我们考虑归纳证明。

易知在 |A|=|B|=1 时,上述结论成立。

假设已经证明了对于 |A|=|B|=n2 上述结论成立,下证对于 |A|=|B|=n 成立。

首先一个简单的分析——考虑 A0A1,其实下标上只有最高位上 A00A11 的区别。然后我们再考虑 (AB)0,既然是或卷积,最高位是 0,那肯定参与的下标都是最高位为 0,也即

(AB)0=A0×B0

稍微复杂的是 (AB)1,要求最高位至少有一个 1,也就是说

(AB)1=A0B1+A1B0+A1B1

有了以上的结论就可以完成或卷积性质的证明了:

F(AB)=F[(AB)0]F[(AB)0+(AB)1]=F(A0B0)F(A0B0+A0B1+A1B0+A1B1)=[F(A0)×F(B0)][F(A0+A1)×F(B0+B1)]=[F(A0)F(A0+A1)]×[F(B0)F(B0+B1)](按位运算)=F(A)×F(B)

与卷积与或卷积相同。

异或卷积

同样的,我们可以得到

(AB)0=A0B0+A1B1(AB)1=A0B1+A1B0

然后给出异或FWT的递归式:

F(A)={F(A0+A1)F(A0A1)|A|>1A|A|=1

接下来是类似的归纳推导:

F(AB)=F[(AB)0+(AB)1]F[(AB)0(AB)1]=F(A0B0+A1B1+A0B1+A1B0)F(A0B0+A1B1A0B1A1B0)=[F(A0+A1)×F(B0+B1)][F(A0A1)×F(B0B1)]=[F(A0+A1)F(A0A1)]×[F(B0+B1)F(B0B1)]=F(A)×F(B)


小记

之前推导 FWT 是正向的构造,虽然构造非常巧妙,但是不太好理解。尤其是异或卷积利用到“异或后二进制位 1 的个数的奇偶性不变”这种虽然明显,但并不好用的性质。

现在能找到一种用归纳法证明 FWT 的方式,感觉非常直接,所以记下来了。

posted @   Lucky_Glass  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
TOP BOTTOM
点击右上角即可分享
微信分享提示