引入
首先,FFT是快速傅里叶变换的简称。傅里叶变换是一个数学中使用的对函数的变换,而离散傅里叶变换顾名思义就是对于离散点的傅里叶变换。
那么,在OI中,傅里叶变换的最大意义,就在于加速向量卷积,即多项式乘法。
多项式乘法
系数表示法
现有两个多项式
A(x)=∑i=0nai∗xiB(x)=∑i=0nbi∗xi
我们这样定义它们的乘法
C(x)=∑i=02n−1(∑j=0iaj∗bi−j)xi=A(x)∗B(x)
计算它们的乘法,朴素的做法需要 O(n2) 的复杂度
我们将上述 A(x) 中的系数写作一个向量 A ,这种方法称为系数表示法
点值表示法
现在来考虑另一种方法:点值表示法
设向量
点值表示法有如下性质
性质一
唯一性:一个n维点值与一个n维系数一一对应
性质二
C(x)=∑i=02n−1(∑j=0iaj∗bi−j)xi
=∑i=02n−1∑j=0i(ajxj)∗(bi−jxi−j)
=