多项式乘法

概述

多项式乘法(Polynomial Multiplication)是计算两个多项式乘积的算法问题。两个度数为 的多项式相乘,朴素算法需要 次运算。通过快速傅里叶变换(FFT)方法,利用系数表示点值表示之间的转换,可在 时间内完成。FFT 是多项式乘法的核心加速技术。

定义

多项式乘法(Polynomial Multiplication)

给定两个度数为 的多项式:

其乘积 是一个度数为 的多项式:

朴素算法直接计算每个 ,需要 次乘法。

多项式的两种表示

表示方法描述乘法代价
系数表示(朴素算法)
点值表示(逐点相乘)

关键洞察:在点值表示下,乘法只需 时间。因此,FFT 方法的策略是:

FFT 方法

快速傅里叶变换(FFT)

FFT 利用单位根(roots of unity)的性质,在 时间内完成 DFT 和 IDFT:

  1. 选择求值点:使用 次单位根 作为求值点
  2. FFT 求值:利用单位根的对称性和分治法,在 时间内将系数表示转换为点值表示
  3. 逐点相乘
  4. 逆 FFT 插值

总时间复杂度:

核心性质

性质描述备注
朴素复杂度直接计算卷积
FFT 复杂度利用分治 + 单位根
卷积多项式乘法等价于系数向量的卷积信号处理的核心运算
分治结构FFT 的递推关系 主定理情形二得

应用场景

  • 信号处理:数字滤波、频谱分析
  • 大整数乘法:将整数视为多项式,用 FFT 加速
  • 字符串匹配:通配符匹配、模式匹配
  • 图像处理:图像卷积和滤波
  • 多项式运算:求值、插值、多项式除法

参见