【算法•日更•第五十七期】快速傅里叶变换(FFT):从入门到放弃
▎一些用的上的东西
小编太菜了,很多东西都不会证明(主要是三角函数还没有学啊~~~)。
附上链接https://blog.csdn.net/enjoy_pascal/article/details/81478582
大家可以看看这个博主的证明。
所以小编就只提供讲解了。
▎前置知识
离散傅里叶变换,传送门。
▎FFT
在之前,一个多项式是长这个样子的:
现在我们拆一下,定义两个多项式:
f1(x)=a0+a2x+a4x2+……+an-2xn/2-1
f2(x)=a1+a3x+a5x2+……+an-1xn/2-1
显然,f(x)=f1(x2)+x·f2(x2)。
利用分治的思想,我们将ωnk和wnk+n/2分别当作x带入,易得:
f(ωnk)=f1(ωn/2k)+ωnkf2(ωn/2k)
f(wnk+n/2)=f1(ωn/2k)-ωnkf2(ωn/2k)
我们会发现只要算出f1(ωn/2k)和ωnkf2(ωn/2k),f(ωnk)和f(wnk+n/2)就迎刃而解了。