FFT与NTT

Posted Der Barde, Nietzsche

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFT与NTT相关的知识,希望对你有一定的参考价值。

多项式:

多项式我也不懂。。。

多项式加法:

同类项系数相加;

多项式乘法:

A*B=C

$A=a_0x^0+a_1x^1+a_2x^2+...+a_ix^i+...+a_{n-1}x^{n-1}$

$B=b_0x^0+b_1x^1+b_2x^2+...b_ix^i+...+b_{m-1}x^{m-1}$

$C=c_0x^0+c_1x^1+c_2x^2+...c_ix^i+...+c_{m+n-2}x^{m+n-2}$

其中

$$c_k=\sum_{i+j=k}^{i<n,j<m}a[i]b[j]$$

我们又称其为多项式的卷积运算。

使用定义法,直接进行卷积运算的期望效率为$O(n^2)$

离散傅里叶变换(DFT):

一个n次多项式(这里定义为最高项指数为n-1)可以被其图像上n个不重的点表示

于是这N个有序数对被称为一个多项式的点值表达式

任意N个不重的有序数对皆可

随便找N个X坐标,依次求其Y坐标,使用(数学必修2称秦九韶算法|算导称霍纳法则)可得到单次$O(n)$整体$O(n^2)$的效率

差值:

一种通过多项式的点值表达式求其系数的方法;

常用的是拉格朗日差值法;

设多项式A的点值表达式为点集

{$(x_0,y_0),(x_1,y_1),...,(x_{n-1},y_{n-1})$}

则:

$$A(x)=\sum_{k=0}^{x-1}y_k{{\Pi_{j!=k}(x-x_j)}\over{\Pi_{j!=k}(x_k-x_j)}}$$

以上是关于FFT与NTT的主要内容,如果未能解决你的问题,请参考以下文章

多项式$fft$,$ntt$,$fwt$初步

FFT及NTT学习

NTT小结及原根求法

分治FFT/NTT

模板NTT

FFT&NTT模板