引用
准备知识
多项式表达
对于一个多项式我们可以写成系数表达和点值表达
对于多项式 f(x)=∑i=ni=0ai⋅xi
这个多项式有n+1项,最高次项次数为n
- 系数表达
写成 n+1 维向量形式 a⃗ =(a0,a1,⋯,an) - 点值表达
我们要选取任意 n+1 个点值 x0,⋯,xn 求出它的 f(xi) ,得到 { (xi,f(xi)):0<=i<=n,i∈Z}
这 n+1 个点值可以任意选取, FFT 的高效性也是因为这 n+1 个点的特殊选取 - 卷积运算
- 点值表达有什么优越性?
- 对于两个多项式,我们分别得到了他们的点值表达,我们就能将两个点值表达式相乘(不足的位也要算出来) O(N) 时间得到两个多项式乘积的多项式的点值表达式
这个乘积运算就是卷积
我们举个例子来看
A(x)=x2+2x−1 { (0,−1),(1,2),(2,7),(3,14),(4,23)}
B(x)=x2−x+2 { (0,2),(1,2),(2,4),(3,8),(4,14)}
C(x)=x4+x3−x2+5x−2 { (0,−2),(1,4),(2,28),(3,112),(4,322)}
- 复数
- n 次单位复根:满足
- n 次单位复根:满足