多项式乘法
duō xiàng shì chéng fǎ
多项式乘法是指运用分配律,把一个多项式的每一项与另一个多项式的每一项相乘,再合并同类项。
Definition
多项式乘法是指把第一个多项式的每一项与第二个多项式的每一项相乘(反复运用分配律),然后合并同类项;结果的次数等于两个因式次数之和,平方差或完全平方三项式等特殊模式可以加快常见情形的运算。严格地说,对 $f = \sum a_ix^i$ 和 $g = \sum b_jx^j$ 而言,乘积为 $(fg)(x) = \sum_{k} \left(\sum_{i+j=k} a_ib_j\right) x^k$,即系数序列的柯西积(卷积);利用快速傅里叶变换,多项式乘法可以在 $O(n \log n)$ 时间内完成,这也是快速整数乘法算法的基础。
Example
$(x + 2)(x + 5) = x^2 + 5x + 2x + 10 = x^2 + 7x + 10$。$(2x - 3)(x^2 + x - 4) = 2x^3 + 2x^2 - 8x - 3x^2 - 3x + 12 = 2x^3 - x^2 - 11x + 12$。$(a_0+a_1x+a_2x^2)(b_0+b_1x+b_2x^2)$ 中 $x^3$ 的系数为 $a_0b_3 + a_1b_2 + a_2b_1 + a_3b_0$,即索引为 $3$ 处的卷积值。
Key Insight
可以把它想象成两个大数相乘,一个数中的每一位都要乘以另一个数中的每一位;对一个 $3$ 项乘以另一个 $3$ 项的多项式而言,这意味着在合并同类项之前要做 $9$ 次乘法。把乘法看作卷积把它与信号处理联系起来,基于快速傅里叶变换的多项式乘法是现代计算机算术的基础。