# 快速沃尔什变换（FWT）介绍

A = ( a 1 , … , a n ) B = ( b 1 , . . . , b n ) C = ( c 1 , . . . , c n ) c k = ∑ i + j = k a i ∗ b j A=(a_1,\dots,a_n)\\ B=(b_1,...,b_n)\\ C=(c_1,...,c_n)\\ c_k=\sum_{i+j=k}a_i*b_j\\

## 或卷积

F W T o r ( A ) [ i ] = ∑ i ∣ j = i a j    ( ∗ ) FWT_{or}(A)[i]=\sum_{i|j=i}a_j\ \ (*)

F W T o r ( C ) [ i ] = F W T o r ( A ) [ i ] ∗ F W T o r ( B ) [ i ] FWT_{or}(C)[i]=FWT_{or}(A)[i]*FWT_{or}(B)[i]
（这里事实上没有证明这个C就是我们想要的C，但是这对我们目前的学习影响不太）

F W T o r ( A + B ) = F W T o r ( A ) + F W T o r ( B ) FWT_{or}(A+B)=FWT_{or}(A)+FWT_{or}(B)

F W T o r ( A ) = ( F W T o r ( A 0 ) , F W T o r ( A 0 + A 1 ) ) FWT_{or}(A)=(FWT_{or}(A0),FWT_{or}(A0+A1))

（不知道有没有讲清楚，如果没有的话，建议多理解一下(*)式）

U F W T o r ( B ) = ( U F W T o r ( B 0 ) , U F W T o r ( B 0 − B 1 ) ) UFWT_{or}(B)=(UFWT_{or}(B0),UFWT_{or}(B0-B1))

## 与卷积

(*)式：
F W T a n d ( A ) [ i ] = ∑ i & j = i a j    ( ∗ ) FWT_{and}(A)[i]=\sum_{i\&j=i}a_j\ \ (*)

F W T a n d ( A ) = ( F W T a n d ( A 0 + A 1 ) , F W T a n d ( A 0 ) ) FWT_{and}(A)=(FWT_{and}(A0+A1),FWT_{and}(A0))

U F W T a n d ( B ) = ( U F W T a n d ( B 0 − B 1 ) , U F W T a n d ( B 0 ) ) UFWT_{and}(B)=(UFWT_{and}(B0-B1),UFWT_{and}(B0))

## 异或卷积

F W T x o r ( A ) [ i ] = ∑ c n t 1 ( i & j ) 为 偶 数 a j − ∑ c n t 1 ( i & j ) 为 奇 数 a j    ( ∗ ) FWT_{xor}(A)[i]=\sum_{cnt1(i\&j)为偶数}a_j-\sum_{cnt1(i\&j)为奇数}a_j\ \ (*)

c n t 1 ( ) cnt1() 指二进制下1的个数

F W T x o r ( C ) [ i ] = F W T x o r ( A ) [ i ] ∗ F W T x o r ( B ) [ i ] FWT_{xor}(C)[i]=FWT_{xor}(A)[i]*FWT_{xor}(B)[i]

F W T x o r ( A ) = ( F W T x o r ( A 0 + A 1 ) , F W T x o r ( A 0 − A 1 ) ) FWT_{xor}(A)=(FWT_{xor}(A0+A1),FWT_{xor}(A0-A1))

U F W T x o r ( B ) = ( U F W T o r ( B 0 + B 1 ) / 2 , U F W T o r ( B 0 − B 1 ) / 2 ) UFWT_{xor}(B)=(UFWT_{or}(B0+B1)/2,UFWT_{or}(B0-B1)/2)

• 0
点赞
• 0
评论
• 0
收藏
• 一键三连
• 扫一扫，分享海报

12-03 2293

10-24 781
05-21 43
08-17 226
10-14 9353
11-29 128
04-29 1216
05-05 1728
02-18 506
04-26 52
08-12 257
08-02 7015
11-19 1355