本篇笔记的目的是尽量通过简洁的方式说明FFT算法的过程,各种概念能不用就不用,也不涉及其物理意义,仅仅局限于算法这一块来讨论FFT
求解多项式乘法,那么首先明确,多项式是什么,例如下面一个多项式:
这是一个n-1次多项式(最高次项是
不过无论是哪种形式,一个多项式都可以通过一组系数所确定,而这组系数所组成的向量也叫做系数向量(例如上面
上面简单介绍一下多项式,接下来回到问题:多项式乘法。例如,已知两个多项式
现在将这两个多项式相乘,得到一个最高n+m-1次多项式:
那么要求解
问题是怎么求?如果直接遍历
关于下面这一节介绍的概念,与FFT并没有直接的联系,可以顺带看一下就当是从不同的角度去理解,当然也可以直接跳过去
点值表示法
对于一个已知的多项式
我们知道,通过两个(不同的)点,可以解析一次多项式(如
通过n+1个不同的点
在详细讨论FFT的具体步骤之前,先从整体上概括一下。FFT主要使用了两种数学方法,离散傅里叶变换(DFT)以及离散傅里叶变换逆变换(IDFT),公式如下: