多项式快速幂——快速傅里叶变换
- 问题描述
我们的目的是为了在尽可能短的时间内计算两个多项式相乘。相乘最直接所需的复杂度是On2。经过快速傅里叶变换(FFT),可以把时间复杂度降低到Onlogn
- 预备知识
2.1多项式
A(x)=i=0n-1aixi
对于两个n次多项式Ax,B(x)
他们的乘积C(x)
可表示为:
C(x)=i=02n-2cixi
其中
ci=k=0iakbi-k
利用这种方法计算多项式乘法复杂度为On2
(第一个多项式中每个系数都需要与第二个多项式的每个系数相乘)
2.2 多项式表示
2.2.1 系数表达
对于一个n次多项式A(x)
,我们可以用一个向量
a=a0,a,⋯,an-1
来表示一个多项式。
2.2.2 点值表达
将n个互不相同的x
带入多项式,会得到n
个不同的取值,该过程被称为“求值”。
求值运算可以通过秦久韶算法,在On的时间复杂度内完成运算。
Ax0=a0+x0a1+x0a2</