复数fft的时间复杂度_快速傅里叶变换(FFT)求解多项式乘法

本篇笔记的目的是尽量通过简洁的方式说明FFT算法的过程,各种概念能不用就不用,也不涉及其物理意义,仅仅局限于算法这一块来讨论FFT

求解多项式乘法,那么首先明确,多项式是什么,例如下面一个多项式:

这是一个n-1次多项式(最高次项是

),
是它各项的系数,该多项式也可以写成以下形式:

不过无论是哪种形式,一个多项式都可以通过一组系数所确定,而这组系数所组成的向量也叫做系数向量(例如上面

的系数向量为:
),通过系数向量表示一个多项的方式也叫做
系数表示法

上面简单介绍一下多项式,接下来回到问题:多项式乘法。例如,已知两个多项式

,分别是n-1次多项式和m-1次多项式(n和m可以相等):

现在将这两个多项式相乘,得到一个最高n+m-1次多项式:

那么要求解

也就是求出它的
系数向量

问题是怎么求?如果直接遍历

的每一项去计算就太慢了,时间复杂度最好也是
,所以需要更快的算法,也就是下面要讨论的:快速傅里叶变换(FFT)算法

关于下面这一节介绍的概念,与FFT并没有直接的联系,可以顺带看一下就当是从不同的角度去理解,当然也可以直接跳过去


点值表示法

对于一个已知的多项式

,将
代进去可以得到一个确定的值
,如:
,并且,可以将
看作是坐标系上的一个点。进一步的,可以将任意多(互不相等)的自变量(
)代入到
中,从而得到更多的点:

我们知道,通过两个(不同的)点,可以解析一次多项式(如

),通过三个不同的点可以解析二次多项式(
),所以可以进一步的推出,通过n+1个不同的点,可以解析n次多项式

通过n+1个不同的点

,唯一确定一个n次多项式,该方式也叫做
多项式的点值表示法

在详细讨论FFT的具体步骤之前,先从整体上概括一下。FFT主要使用了两种数学方法,离散傅里叶变换(DFT)以及离散傅里叶变换逆变换(IDFT),公式如下:

(DFT)

&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值