1. 程式人生 > >FFT 深夜摸魚小筆記

FFT 深夜摸魚小筆記

cos 其他 遞歸 lin tro 筆記 集合 整除 核心

本次筆記學習自算法導論

FFT核心:系數表示→(單位復數根)點值表示→(插值)系數表示

關於單位復數根
n次單位復數根\(ω\)為滿足\(ω^n=1\)的復數
n次單位復數根恰好有n個,表示為\(ω_k,k=0,1,...n-1\)
由歐拉公式\(e^{iθ}=cosΘ+isinΘ\),得\(ω_k=e^{i2πk/n}\)
主n次單位根\(ω_n=e^{2πi/n}\),其他n次單位復數根都是\(ω_n\)的冪次,表示為\(ω_n^k,k=0,1,...n-1\)
\(ω_n^n=ω_n^0\),\(ω_n^{j+k}=ω_n^{(j+k)mod \ n}\)
消去引理:對於整數\(n≥0,k≥0,d>0\)

,\(ω_{dn}^{dk}=ω_n^k\)
推論:對於偶數\(n>0\),\(ω_n^{n/2}=ω_2=-1\)
折半引理:偶數\(n>0\),\(n\)\(ω_n^k\)的平方的集合 = \(n/2\)\(ω_{n/2}^k\) 的集合
簡略證明:\(ω_n^{k+n/2}=ω_n^k*(-1)\),所以平方相等,\(ω_n^{2k}=ω_{n/2}^k\),所以每個n次單位復數根的平方都能獲得2個n/2次單位復數根
求和引理:對於整數\(n≥1\)和不被\(n\)整除的\(k≥0\),\(\sum_{j=0}^{n-1}(ω_n^k)^j=0\)

假設\(n\)為2的冪
多項式\(A(x)=A^{[0]}(x^2)+xA^{[1]}(x^2)\)


\(A^{[0]}(x)=a_0+a_2x+a_4x^2+...+a_{n-2}x^{n/2-1}\)
\(A^{[1]}(x)=a_1+a_3x+a_5x^2+...+a_{n-1}x^{n/2-1}\)
\(A(x)\)的點值表示可以通過\(A^{[0]}(x)\)\(A^{[1]}(x)\)來表示,既\((ω_n^0)^2,(ω_n^1)^2,...(ω_n^{n-1})^2\)來表示
由折半引理,上式僅由\(n/2\)\(n/2\)次單位復數根$所組成,所以不斷遞歸子問題規模都會減半

FFT 深夜摸魚小筆記