快速沃尔什变换详解(FWT)
来源:互联网 发布:找淘宝客服工作 编辑:程序博客网 时间:2024/06/08 16:03
原文
快速沃尔什变化(FWT)介绍
能看到这篇博客的人,一定知道FWT是干什么的。(什么?你不知道?)
没事,这里有picks讲FWT的一篇博客。先点进去看一看。
如果你看懂了,那么恭喜你。如果你跟我一样看不懂,那么请继续往下看。
这里的A和B都是什么呢?其实它们是一个多维的向量(如果你不知道向量是什么,就把它当成数组),下标从0开始。
其中,
这里我们定义
注意到FWT做的是二进制上的位运算,所以一定要把A和B补到2的整次幂次(即不足的地方填上0)。
我们要构造一个变换
就以异或举例。picks告诉我们
即把A中的下标按照二进制最高位为0或1分成前后两部分(前面的为
分治之后得到
然而,这为什么是对的?
接下来我们来证明它是对的。
我要事先说明(注意不是证明)一个引理:
我们看
根据定义,有
自己代代看,反正代出来很神奇的的发现
接下来使用数学归纳法。假设对于大小都为
考虑当大小为
根据定义,有
暴力把式子拆开,有
注意到这里的
由于异或每一位是独立,而这里如果我们把C按照最高位为0或1分成两部分,最高位的异或和其它位不相关。
于是有
(抱歉我不会排版。式子长得比较丑没关系,看得懂就好)
至此,证毕。
然而这只是一个
证明方法比较简单(真的很简单),这里略过。
至于其它位运算,其证明方法与异或一致,这里不赘述。
说了这么多,其实这个证明并没有什么卵用(只是使得自己相信它是对的)。。大家还是背代码吧。。。
我的模板:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 快速沃尔什变换详解(FWT)
- 快速沃尔什变换FWT
- 文章标题 FWT (快速沃尔什变换) 模板
- [FWT] 快速沃尔什变换学习笔记
- FWT——快速沃尔什变换
- 快速沃尔什变换(FWT) 学习笔记
- 快速沃尔什变换(FWT)讲解 解决集合卷积的方法
- CSU 1911 Card Game 快速沃尔什变换(FWT)模板题
- 快速沃尔什变换(FWT)讲解 解决集合卷积的方法
- Codeforces 662C Binary Table 快速沃尔什变换(FWT)
- Codeforces 662C Binary Table FWT 快速沃尔什变换
- 快速沃尔什变化(FWT)介绍
- BZOJ 4589 Hard Nim(博弈论+FWT+快速幂)
- FWT 详解 知识点
- FFT NTT FWT: 傅立叶变换, 求卷积
- FWT
- FWT
- 快速沃尔什变换
- DS, ES, SS, DI, SI, BP, SP, IP, FS 寄存器
- String类不可变以及不可变类总结
- 使用laravel进行微信开发要注意的关键点
- JSONP 应用
- 【模板】高精度
- 快速沃尔什变换详解(FWT)
- 51nod 1491 黄金系统
- 【经典必学】常用开源框架中设计模式使用分析
- KMP算法
- NWERC2015 Elementary Math
- 怎样安装最新版的Appium
- CUDA编程实践(一)
- 并查集之POJ--1308--Is It A Tree?
- CSS基础(一)