[学习笔记]多项式多点求值与多点插值 - 多项式理论 - 学习笔记

下文及代码中所有提及某个函数是以n为界或者是n次的,意思是其最高次项次数n−1n-1n1
关于求逆,由牛顿迭代:F=G−1Fn+1=2Fn−Fn2GF=G^{-1}\\F_{n+1}=2F_n-F_n^2GF=G1Fn+1=2FnFn2G
关于多项式取模,A(x)以n为界,B(x)以m为界,需要求C(x)和D(x),使得C(x)的界是n-m+1,D(x)的界是m-1:
A(x)=B(x)C(x)+D(x)xn−1A(1x)=(xm−1B(1x))(xn−mC(1x))+xn−1D(1x)A(x)=B(x)C(x)+D(x)\\x^{n-1}A\left(\frac 1x\right)=\left(x^{m-1}B\left(\frac 1x\right)\right)\left(x^{n-m}C\left(\frac1x\right)\right)+x^{n-1}D\left(\frac 1x\right)A(x)=B(x)C(x)+D(x)xn1A(x1)=(xm1B(x1))(xnmC(x1))+xn1D(x1)
注意到xn−1D(1x) mod xn−m+1=0x^{n-1}D\left(\frac 1x\right)\bmod {x^{n-m+1}}=0xn1D(x1)modxnm+1=0,因此(设ATn(x)A^{T_n}(x)ATn(x)表示将A(x)A(x)A(x)nnn为界翻转):
ATn(x)=BTm(x)CTn−m+1(x)(modxn−m+1)CTn−m+1(x)=ATn(x)(BTm(x))−1A^{T_{n}}(x)=B^{T_{m}}(x)C^{T_{n-m+1}}(x)\pmod {x^{n-m+1}}\\ C^{T_{n-m+1}}(x)=A^{T_{n}}(x)\left(B^{T_{m}}(x)\right)^{-1}ATn(x)=BTm(x)CTnm+1(x)(modxnm+1)CTnm+1(x)=ATn(x)(BTm(x))1
因此可以求出CCC,再通过一次乘法求出D即可。

多项式多点求值:
现在有一个以nnn为界的多项式A(x)A(x)A(x),以及mmm个位置x1,…,xmx_1,\dots,x_mx1,,xm,求A(x1),…,A(xm)A(x_1),\dots,A(x_m)A(x1),,A(xm)
考虑分治,令L(x)=∏i=Lmid(x−xi),R(x)=∏i=mid+1R(x−xi)L(x)=\prod_{i=L}^{mid}(x-x_i),R(x)=\prod_{i=mid+1}^R(x-x_i)L(x)=i=Lmid(xxi),R(x)=

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值