首页 > 其他分享 >[多项式] FFT小计

[多项式] FFT小计

时间:2024-05-06 11:33:05浏览次数:13  
标签:个点 多项式 FFT 小计 然后 计算 我们

引入

给出两个多项式 \(A,B\) ,计算它们相乘的结果。

我们能轻易写出 code:

for(int i=0;i<=n;i++)
	for(int j=0;j<=n;j++)
		C[i+j]+=A[i]*B[j];

然后超时了。
FFT 是一种将多项式乘法优化成 \(O(n\log n)\) 的神仙算法。

分析

上面的式子没有任何优化空间。
什么意思呢?就是怎么乱搞都优化不了。于是我们看看天才算法是怎么搞的。

点值表示法

我们知道 \(n\) 个点确定一条 \(n-1\) 次多项式。
所以我们把多项式转到平面上。
我们随便取 \(2n+1\) 个点,先在 \(A\) 中计算出这些点,表示成 \((x,y_A)\),然后在 \(B\) 中计算出这些点:\((x,y_B)\) ,然后我们就能很容易计算出 \(y_C=y_A\times y_B\) 。然后我们用 \(n\) 个点确定一条多项式。

天才思路!但是是不是有什么不对的地方?
计算一个点是 \(O(n)\) 的,然后有 \(n\) 个点要计算...时间复杂度 \(O(n^2)\)。

如果只是随便取点,就是低估了傅里叶的上限了。

取点

我们想想我们有没有知道一个点 \(x_1\) 的值,就能马上另一点的值呢?
我们先来看二次函数 \(f(x)=x^2\) :
如果知道 \(f(5)=25\),马上就能知道 \(f(-5)=25\)。
再来看看三次函数 \(f(x)=x^3\),和二次函数一样,但是加个负号就行,说人话就是奇偶函数。

我们推广到多项式这一般形式:
\(A(x)=16x^5+22x^4+7x^3+5x^2+13x+8\)
我们把奇偶次数分开一下:

\[p=16x^5+7x^3+13x \]

\[q=22x^4+5x^2+8 \]

假设我们算出 \(x\) 点的取值为 \(p+q\) ,那么 \(-x\) 点的取值不就是 \(q-p\) 吗!

也就是说,我们现在只需要取 \(\frac{n}{2}\) 这么多点就行了。

然后能不能继续拓展?
这个看起来能递归的样子:

标签:个点,多项式,FFT,小计,然后,计算,我们
From: https://www.cnblogs.com/g1ove/p/18174701

相关文章

  • 多项式板子
    本页面由洛谷云剪贴板进化而来。免责:多项式可能未经良好测试,并不完善或可能执行时出现问题,如有问题请在本页评论区说明。改自Submission。备份。feature:指令集优化ntt(来自fjzzq2002);转置原理多点求值与插值;2log多项式复合(逆)(改自hly1204github版);开罐即食版多叉半在线卷积......
  • 多项式计数
    注:其实前面还有一些内容,如矩阵树定理一类的东西。但是由于我还没有整理好所以把整理好的部分弄上来。一些DFT/IDFT的算法学多项式是一个很有意思的过程。开始的时候你会学习FFT/NTT知道怎么样通过DFT/IDFT快速计算多项式的各种操作。然后你会深入学习多项式的各种运......
  • 多项式全家桶
    还有好一些困难东西没学,现就这样吧。每日一遍:\(167772161,469762049\)除了求逆其他都要预留两倍空间!#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;constllN=(1<<19)+3,H=998244353,g=3,ig=(H+1)/3;intU[N];ull......
  • 多项式模板学习笔记
    多项式乘法存在多项式\(F(z)=\sum_{i=0}^na_iz^i,G(z)=\sum_{i=0}^mb_iz^i\),我们定义多项式乘法:\[F(z)*G(z)=\sum_i\sum_ja_ib_jz^{i+j}\]多项式的点值表达一个\(n\)次函数可以用平面上的\(n+1\)个点来表达。所以我们可以把一个\(n\)次多项式从系数表达转化成\(n+......
  • 莫队小计
    莫队考虑一个经典的问题。对一个数列进行\(m\)次区间求和。暴力需要\(O(nm)\),但是莫队可以优化到\(O(n\sqrtm)\)。思想具有启发式思维。假如我们知道\([l,r]\)的和为\(k\)。在此基础上\([l-1,r],[l,r+1]\)都可以很快得到。莫队是对上一个问题解决这个问题。要给对问题......
  • XMU《计算方法》实验二 FFT
    实验二 FFT一、MATLAB代码clear;N=32;TIME=5;X=linspace(-pi,pi,33);X=X(1:32);A=X.^2.*cos(X);form=0:N-1w(m+1)=exp(1i*2*pi/32*m);endi=1;whilei<NB=A;forj=0:i*2:N-1fork=0:i-1......
  • Oracle 小计-汇总处理
    假设我们有一个名为employees的表,它包含部门(department)、员工姓名(employee)和工资(salary)CREATETABLEemployees(departmentVARCHAR2(50),employeeVARCHAR2(50),salaryNUMBER(10,2));初始化数据INSERTINTOemployees(department,employee,salary)VAL......
  • 多项式乘法(FFT)学习笔记
    Reference:@自为风月马前卒亦@attack的博客这里为了帮助我自己理解,先手推(抄)一遍这位dalao给出的快速傅里叶逆变换的证明。\((y_0,y_1,\dots,y_{n-1})\)为多项式\((a_0,a_1,\dots,a_{n-1})\)在\(x\)取\((\omega^0_n,\omega^1_n,\dots,\omega^{n-1}_n)\)时......
  • 普通有限多项式笔记
    普通多项式笔记\(\textrm{Newton'sMethod}\)(牛顿迭代)应用于解决已知\(g(x)\)的情况下,求出\(g(f(x))\equiv0\modx^n\)。首先通过列出方程显然,\(f(x)\modx^n\)在此时是唯一的。那么我们假设已知\(g(f_0(x))\equiv0\modx^{n/2}\),显然此时\(f_0(x)\modx^{n/2}\)也......
  • CF1957E 做题小计 : 威尔逊定理
    被数论虐爆了(悲)威尔逊定理\(\forallp\inprime,(p-1)!\equiv-1(\bmodp)\)为什么啊?对于\(2\)很显然。对于\(p\),我们知道\(inv(p-1)=p-1=-1\),然后\(inv(1)=1\)然后因为\(p\inprime\),所以对于任意\(a\in[2,p-2]\),都有\(inv(a)\)与它唯一对应。因为\(......