快速傅里叶变换实用讲解
快速傅里叶变换实用讲解
妈妈再也不用担心 FFT 只能记板子了。
快速傅里叶变换
一个
对于二的整数次幂
设
很明显有
那么
可以发现这两个仅是符号的差别,于是我们可以分治解决。
快速傅里叶逆变换
根据系数求点值可以看作一个线性变换,即:
逆变换相当于对这个矩阵求逆,得到(我并不会证明):
该有的性质还是有,直接用 FFT 的方法求解即可。
蝶形变换
好美的名字。
直接给结论吧:最终系数
证明也十分简单,考虑上述分治过程,分治到第
于是我们就改递归为递推了。
模意义
单位根是复数域上的概念,对应在模意义域就是原根。
其实上述分治过程只是用到了单位根的三个性质:
而原根也有这些性质,可以放心使用。
但还有一点,由于
常用的的有:
任意模数
很简单,分别用上文的三种模数实现 NTT 后用中国剩余定理还原出真实的值,从而实现任意模数。
多项式求逆
注:为了美观,本段所有多项式省去
假设我们求出了
显然我们有
所以
因为
分治FFT
半在线卷积的解法,其实就是CDQ分治优化DP+FFT。
虽然模板题可以多项式求逆搞过去。但只需要加一个逐项系数
就可以阻止多项式求逆。
求导推式子
当遇到形如
动态多项式乘法
每次乘/除上一个因式,动态维护其结果
多项式乘法可以看作一个递推,那么多项式除法就是一个逆过程,在这之上易于计算。
当每次乘除的因式极短时,这种方法要优于FFT。
生成函数的上下界限制
生成函数,在多项式形式的上下界进行修改,其实是限制了方案。
作者:lupengheyyds
出处:https://www.cnblogs.com/lupengheyyds/p/18734586
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?