多项式乘法入门

本文是初学者对FFT、DFT、CZT、NTT的理解。介绍了多项式、线性卷积、循环卷积的概念,并探讨它们与DFT的关系。通过单位根的性质解释了FFT的实现,包括Cooley-Tukey算法和蝴蝶变换。同时讨论了IDFT、循环卷积与线性卷积的区别,并提出Z-变换(CZT)在循环卷积中的应用,以及数论变换(NTT)在模运算中的作用。
摘要由CSDN通过智能技术生成

多项式乘法入门

By SemiWaker

这是一篇蒟蒻对FFT、DFT、CZT、NTT的弱鸡理解

多项式

a0x+a1x1+a2x2+an1xn1

上面的这个形式叫做多项式。
系数: a0..n1
项: aixi
界:n
为了方便我们系数序列就可以表示多项式。

线性卷积

A×B=i=02n2(j=0iAjBij)xi

简单来说,就是把两个多项式直接乘起来。
第i项的构成如下:
任取两个项 Ajxj Bkxk ,如果 j+k=i ,那么得到 AjBkxi
将所有 j+k=i 的项系数两两相乘加起来即可。

循环卷积

A×B=i=0n1(j,kAjBk[j+ki(modn)])xi

比较难理解。
其实就是把多项式的-1项设为n-1项,-2项设为n-2项……
然后,线性卷积为了防止出现-1项,设定了j<=i,现在我们把它去掉。
A×B=i=0n1(j=0n1AjBij)xi

线性卷积和循环卷积关系

我们用比较形象地方式说明。
举个例子

(1+2x+3x2+4x3)×(5+6x+7x2+8x4)

(1,2,3,4)×(5,6,7,8)
线性卷积:
线性卷积
循环卷积
循环卷积
如果把 (5,6,7,8) 复制展开
循环卷积展开
然后我们观察,设线性卷积的结果为 C0...6 ,循环卷积的结果为 D0..3
则有:
D0=C0+C4
D1=C1+C5
D2=C2+C6
D3=C3
也就是说,把线性卷积重叠在一起,就得到了循环卷积。

多项式点值表示

我们把N个数 x0..n1 带入x,可以得到多项式的N个值 A(x0..n1)
将每一个数和对应的值当成一个点 (xi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值