快速傅里叶变换
FFT是用来计算离散傅里叶变换(DFT)及其逆变换(IDFT)的快速算法。
两个n次多项式直接相乘所需的时间为O( n2 ),而FFT可以将其复杂度降低为O( nlogn )。
令A(x) = ∑n−1j=0ajxj
B(x) = ∑n−1j=0bjxj
C(x) = ∑2n−2j=0cjxj
其中 cj=∑jk=0akbj−k
一个n次多项式可以由n+1个点值确定,例如两点确定一条直线,三点确定一个二次函数。
那么我们通过DFT将由系数表达式确定的A,B分别转换为点值表达式以后,可以得到C的点值表达式以后,通过IDFT可以得到C的系数表达式。
例如:
A的点值表达式{
(x0,y0),(x1,y1)⋅⋅