快速傅里叶变换(FFT)_2

快速傅里叶变换(FFT)详解

前言:

DFT:离散傅里叶变换—>O(x2)计算多项式乘法

FFT:快速傅里叶变换—>O(nlog(n)O(n∗log⁡(n)计算多项式乘法

FNTT/NTT:快速傅里叶变换的优化版—>优化常数及误差

FWT:快速沃尔什变换—>利用类似FFT的东西解决一类卷积问题

MTT:毛爷爷的FFT—>非常nb/任意模数

FMT 快速莫比乌斯变化—>感谢stump提供

多项式

系数表示法

A(x)A(x)表示一个n1次多项式

 

例如:

利用这种方法计算多项式乘法复杂度为O(x2)

(第一个多项式中每个系数都需要与第二个多项式的每个系数相乘)

点值表示法

nn互不相同的xx带入多项式,会得到nn个不同的取值yy

则该多项式被这n个点唯一确定

其中:

例如:上面的例子用点值表示法可以为(0,2),(1,6),(2,12)

利用这种方法计算多项式乘法的时间复杂度仍然为O(x2)

(选点O(n),每次计算O(n))

我们可以看到,两种方法的时间复杂度都为O(x2),我们考虑对其进行优化

对于第一种方法,由于每个点的系数都是固定的,想要优化比较困难

对于第二种方法,貌似也没有什么好的优化方法,不过当你看完下面的知识,或许就不这么想了

猜你喜欢

转载自www.cnblogs.com/guxuanqing/p/9452360.html