多项式算法1:多项式乘法

本文介绍了多项式的基本概念,包括度数、系数表示和卷积,并详细探讨了点值表示、插值以及如何通过复数单位根优化多项式乘法。重点讲解了离散傅里叶变换(DFT)、快速傅里叶变换(FFT)及其时间复杂度分析,以及FFT的逆变换。最后提到了迭代求解的方法。
摘要由CSDN通过智能技术生成

多项式简介

对于数域 F \mathbb F F,若有 ∀ i ∈ { 1 , 2 , 3 , ⋯   , n } \forall i\in\{1,2,3,\cdots,n \} i{ 1,2,3,,n},则
f ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a n x = ∑ i = 1 n a i x i f(x)=a_0+a_1x+a_2x^2+\cdots+a_nx=\sum_{i=1}^na_ix^i f(x)=a0+a1x+a2x2++anx=i=1naixi

为数域 F \mathbb F F上的一个多项式.

多项式的度数

  • 多项式最高项的次数称作多项式的次数

  • f ( x ) = ∑ i = 1 n a i x i f(x)=\sum\limits_{i=1}^na_ix^i f(x)=i=1naixi,其中 a n ≠ 0 a_n≠0 an̸=0

  • 记作 deg  f ( x ) = n \text{deg}\ f(x)=n deg f(x)=n

多项式的系数表示

对于上述多项式 f ( x ) f(x) f(x),有系数向量 a ⃗ \vec{a} a 与之映射
f ( x ) = ∑ i = 1 n a i x i ⇔ a ⃗ = ( a 1 , a 2 , a 3 , ⋯   , a n ) f(x)=\sum_{i=1}^na_ix^i⇔\vec{a}=(a_1,a_2,a_3,\cdots,a_n) f(x)=i=1naixia =(a1,a2,a3,,an)

我们称 a ⃗ \vec{a} a f ( x ) f(x) f(x)的系数表示

多项式卷积

首先定义
f ( x ) = ∑ i = 1 n a i x i f(x)=\sum\limits_{i=1}^na_ix^i f(x)=i=1naixi

g ( x ) = ∑ i = 1 n b i x i g(x)=\sum\limits_{i=1}^nb_ix^i g(x)=i=1nbixi

于是他们的卷积形式为
h ( x ) = ( f ⋅ g ) ( x ) = ( ∑ i = 1 n a i x i ) ( ∑ i = 1 n b i x i ) h(x)=(f\cdot g)(x)=\Bigg(\sum\limits_{i=1}^na_ix^i\Bigg)\Bigg(\sum_{i=1}^nb_ix^i\Bigg) h(x)=(fg)(x)=(i=1naixi)(i=1nbixi)

可得 deg  h ( x ) = 2 n \text{deg}\ h(x)=2n deg h(x)=2n,于是令
h ( x ) = ∑ i = 1 n c i x i h(x)=\sum_{i=1}^nc_ix^i h(x)=i=1ncixi

c i c_i ci满足以下运算律
c i = ∑ j + k = i a j b k = ∑ j = i n a j b i − j c_i=\sum_{j+k=i}a_jb_k=\sum_{j=i}^na_jb_{i-j} ci=j+k=iajbk=j=inajbij

系数向量 c c c a a a b b b的卷积,记作
c = a ∗ b c=a*b c=ab

多项式点值表示

deg  f ( x ) = n \text{deg}\ f(x)=n deg f(x)=n ∀ x i ∈ F   ( i = ( 1 , 2 , 3 , ⋯   , n ) ) \forall x_i\in\mathbb F\ (i=(1,2,3,\cdots,n)) xiF (i=(1,2,3,,n))
y i = f ( x i ) y_i=f(x_i) yi=f(xi)

则我们可以在数域 F \mathbb F F的坐标系中绘制出 n n n个点
( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , ⋯   , ( x n , y n ) (x_1,y_1),(x_2,y_2),(x_3,y_3),\cdots,(x_n,y_n) (x1,y1),(x2,y2),(x3,y3),,(xn,yn)
同样与 f ( x ) f(x) f(x)函数有映射关系。

不妨将这 n n n个点带入矩阵运算
[ 1    x 1    x 1 2      ⋯    x 1 n 1    x 2    x 2 2      ⋯    x 2 n 1    x 3    x 3 2      ⋯    x 3 n ⋮      ⋮      ⋮      ⋱    ⋮ 1    x n    x n 2      ⋯    x n n ] [ a 1 a 2 a 3 ⋮ a n ] = [ y 1 y 2 y

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值