多点求值与暴力插值

Posted butterflydew

tags:

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

暴力插值

给你 \(n\) 个点 \((x_i,y_i)\) ,要求求出这个 \(n\) 次多项式 \(F(x)\)

我们有
\[ F(x)=\sum_i=1^ny_i\frac\!\prod\limits_1\le j\le n,i\not=j\!\!\!\!(x-x_j)\!\prod\limits_1\le j\le n,i\not=j\!\!\!\!(x_i-x_j) \]
感性愉悦认识一下这个拉格朗日插值

复杂度 \(O(n^2)\)


多点求值

给你 \(X=\x_0,x_1,x_2,\dots,x_m-1\\) 和 一个 \(n\) 次多项式 \(A\) ,要求求出 \(Y=\A(x_0),A(x_1),A(x_2),\dots,A(x_m-1)\\)

将需要求的点值分成两个子任务 \(X_1=\x_0,x_1,\dots,x_\lfloor\fracm2\rfloor\,X_2=\x_\lfloor\fracm2\rfloor+1,x_\lfloor\fracm2\rfloor+2,\dots,x_m-1\\)

若已经完成了 \(X_1\)\(X_2\) 两个子任务的多点求值,且分别用 \(X_1\)\(X_2\) 两个集合中的点插值得到的多项式为 \(A_1(x),A_2(x)\)

考虑构造两个多项式 \(P_1(x)=\prod\limits_0\le i\le \lfloor\fracm2\rfloor(x-x_i)\)\(P_2(x)=\prod\limits_\lfloor\fracm2\rfloor<i<m(x-x_i)\)

考虑 \(A(x)=Q_1(x)P_1(x)+A_1(x)\) ,我们将 \(x\in X_1\) 的点代入,发现左边这个式子是成立的。

于是我们可以得到 \(A_1(x)=A(x) \bmod P_1(x)\)

\(A_2\) 同理,然后我们可以两边递归求解

可以发现对于所有的 \(P\) 实际上在做分治合并的过程中都可以求,我们只需要存下来就可以了

根据主定理可以得到复杂度为 \(O(n\log^2 n)\)

多项式取余

\[ A(x)=Q(x)B(x)+R(x) \]

其中 \(\deg A=n,\deg B=m,\deg R=n-m,m<n\)

定义翻转操作 \(A^r=x^nA(\frac1x)\),其中 \(n=\deg A\)

\(x=\frac1x\) ,并将两边同乘 \(x^n\)
\[ \beginaligned &x^nA(\frac1x)=x^n-mQ(\frac1x)x^mB(\frac1x)+x^n-m+1x^m-1R(\frac1x)\\Rightarrow&A^r(x)\equiv Q^r(x)B^r(x)\pmod x^n-m+1 \endaligned \]


代码晚点补

以上是关于多点求值与暴力插值的主要内容,如果未能解决你的问题,请参考以下文章

多点求值与快速插值

解题报告多项式求值与插值(拉格朗日插值)(ACM / OI)

学习笔记多项式全家桶(包含全套证明)

多项式快速插值

多项式多点求值

拉格朗日插值