快速傅里叶变换(FFT)求解多项式乘法

前提:这里是从数学和算法的角度理解FFT,不涉及信号处理背景知识

问题描述:多项式相乘求解目的得到相乘多项式的系数,直接相乘暴力求解的时间复杂度为O(n2),(a0b0,...,a0bn),...,(anb0,...,anbn)

图片转载自快速傅里叶变换(FFT, Fast Fourier Transform) - 知乎

最后fft求解的复杂度为O(nlogn)+O(n)+O(nlogn)=O(nlogn)

离散傅里叶变换(DFT) 是来计算多项式在n个特殊点(单位根)的值。而 快速傅里叶变换(FFT) 是一种快速有效率的对DFT的实现。FFT 加速多项式乘法,其基本思想是将两个多项式的系数表示通过 FFT 转化为特殊点处的点值表示,然后计算两个多项式点值表示的乘积得到原多项式卷积的点值表示,再将多项式卷积的点值表示进行 逆离散傅里叶变换(IDFT) 就得到了乘积多项式的系数表示。

已知系数表达式求点值表达式

这里n是2的整数幂,不够要补零。

核心就是我①式计算前面2/n部分的结果可以保留下来用于计算后面2/n部分②式的计算,这样的话就可以把每个区间每一次进行等分成两份,就可以分成logn次,每次需要计算n次(比如A1(x)公式你看里面最大那一项是x^{n}),最后时间复杂度就是O(nlogn)这样我们就在O(nlogn)时间内得到了点值表达式

这样就可以每计算一个值需要递归logn层,计算n个值所以在

 O(nlogn)时间内得到了点值表达式

Reference

简单易懂FFT_哔哩哔哩_bilibili

十分简明易懂的FFT(快速傅里叶变换)_路人黑的纸巾的博客-CSDN博客_fft //细节补充

快速傅里叶变换(FFT)求解多项式乘法 - 知乎//整体思想的把握讲的很好,整个框架逻辑搭好了,就是一些细节没有完善如,fft蝶形计算方式没有讲述

FFT(傅里叶快速变换,详细讲解+推导) 每日一遍,算法再见!_鲜果维他命的博客-CSDN博客_fft

//细节基础知识解释的很好,有些算法部分能够让你豁然开朗,就是一些细节没有完善如,fft蝶形计算方式没有讲述

=======================================================================

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值