FWT 學習筆記

2022-10-11 12:12:12 字數 1225 閱讀 8567

好久以前寫的,先粘上來

定義陣列

\(n=2^k\)

\(a=[a_0,a_1,a_2,a_3,...,a_]\)

令\(a_0=[a_0,a_1,a_2,...,a_]\)

且\(a_1=[a_,a_,..,a_]\)

即\(a_0\)為沒有最高位的部分,\(a_1\)為有二進位制最高位的部分

\(a\)可以用\(a=\\)表示

定義運算

\(a+b=[a_0+b_0,a_1+b_1,...,a_n+b_n]=\\)

\(a-b=[a_0-b_0,a_1-b_1,...,a_n-b_n]=\\)

\(a*b=[a_0*b_0,a_1*b_1,...,a_n*b_n]=\\)

\(a xor b=[\sum_a_i*a_j,\sum_a_i*a_j,...,\sum_a_i*a_j]\)

\(a and b=[\sum_a_i*a_j,\sum_a_i*a_j,...,\sum_a_i*a_j]\)

\(a or b=[\sum_a_i*a_j,\sum_a_i*a_j,...,\sum_a_i*a_j]\)

性質1交換率、結合率均滿足

\(cxor(a+b)=cxora+cxorb\)

\(cand(a+b)=canda+candb\)

\(cor(a+b)=cora+corb\)

性質2由於\(n-1\)和\(\frac n 2-1\)在二進位制下相差一位的特殊性質

\(axorb=\\)

\(aandb=\\)

\(aorb=\\)

\(fwt(a)=a(n=1)\)

n>1時

xor:\(fwt(a)=\\)

xor:\(dwt(a)=\ 2),dwt(\frac 2)\}\)

and:\(fwt(a)=\\)

and:\(dwt(a)=\\)

or:\(fwt(a)=\\)

or:\(dwt(a)=\\)

這跟fft遞迴樹是乙個道理的啊

fft要分奇偶遞迴樹先按最低位為0分兩段

到fwt裡啥順序都行,reverse都不用了

性質1.\(fwt(a\pm b)=fwt(a)\pm fwt(b) 線性性\)

2.\(fwt(a⊕b)=fwt(a)*fwt(b) (點乘)\)

3.\(dwt(fwt(a))=a\)

證明代入一下再根據性質一化簡一下,數學歸納法

模板鏈結

FWT 學習筆記

因為考試遇見了所以來學習一下,雖然好像之前有個神仙來講過,但啥都記不到了 相比fft的ci j k iaj b kc i sum a j b k ci j k i aj bk fwt其實很簡單 c i j k iaj b kc i sum a j b k ci j k i aj bk 其中 bigo...

FWT背板筆記

板子 背板子.jpg fwt 用於解決這樣的問題 c i sum a j times b k 其中 bigoplus 是一種二元運算子,如 or,and,xor 首先我們直接做複雜度顯然高達 4 n 或許可以利用一些列舉子集的技術做到 3 n 但是還是非常難以接受 於是我們考慮能否像 fft 那樣構...

FWT 學習總結

我理解的fwt是在二元運算意義下的卷積 目前比較熟練掌握的集合對稱差卷積 對於子集卷積和集合並卷積掌握不是很熟練 挖坑ing 那麼就先來談一談集合對稱差卷積吧 所謂集合對稱差卷積 就是h i sigma g j f k j k i 首先乙個很顯然的事情是如下結論 證明就是如果s是空集,答案為1,否則...