多项式乘法
概述
多项式乘法(Polynomial Multiplication)是计算两个多项式乘积的算法问题。两个度数为 的多项式相乘,朴素算法需要 次运算。通过快速傅里叶变换(FFT)方法,利用系数表示与点值表示之间的转换,可在 时间内完成。FFT 是多项式乘法的核心加速技术。
定义
多项式乘法(Polynomial Multiplication)
给定两个度数为 的多项式:
其乘积 是一个度数为 的多项式:
朴素算法直接计算每个 ,需要 次乘法。
多项式的两种表示
| 表示方法 | 描述 | 乘法代价 |
|---|---|---|
| 系数表示 | (朴素算法) | |
| 点值表示 | (逐点相乘) |
关键洞察:在点值表示下,乘法只需 时间。因此,FFT 方法的策略是:
FFT 方法
快速傅里叶变换(FFT)
FFT 利用单位根(roots of unity)的性质,在 时间内完成 DFT 和 IDFT:
- 选择求值点:使用 次单位根 作为求值点
- FFT 求值:利用单位根的对称性和分治法,在 时间内将系数表示转换为点值表示
- 逐点相乘:
- 逆 FFT 插值:
总时间复杂度:
核心性质
| 性质 | 描述 | 备注 |
|---|---|---|
| 朴素复杂度 | 直接计算卷积 | |
| FFT 复杂度 | 利用分治 + 单位根 | |
| 卷积 | 多项式乘法等价于系数向量的卷积 | 信号处理的核心运算 |
| 分治结构 | FFT 的递推关系 | 由主定理情形二得 |
应用场景
- 信号处理:数字滤波、频谱分析
- 大整数乘法:将整数视为多项式,用 FFT 加速
- 字符串匹配:通配符匹配、模式匹配
- 图像处理:图像卷积和滤波
- 多项式运算:求值、插值、多项式除法