多点求值与暴力插值

博客介绍了暴力插值、多点求值和多项式取余的相关内容。暴力插值通过拉格朗日插值公式求 \(n - 1\) 次多项式,复杂度为 \(O(n^2)\);多点求值采用分治递归求解,复杂度为 \(O(n\log^2 n)\);还给出了多项式取余的公式及推导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

暴力插值

给你 \(n\) 个点 \((x_i,y_i)\) ,要求求出这个 \(n-1\) 次多项式 \(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\frac{m}{2}\rfloor}\},X_2=\{x_{\lfloor\frac{m}{2}\rfloor+1},x_{\lfloor\frac{m}{2}\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\frac{m}{2}\rfloor}(x-x_i)\)\(P_2(x)=\prod\limits_{\lfloor\frac{m}{2}\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(\frac{1}{x})\),其中 \(n=\deg A\)

\(x=\frac{1}{x}\) ,并将两边同乘 \(x^n\)
\[ \begin{aligned} &x^nA(\frac{1}{x})=x^{n-m}Q(\frac{1}{x})x^mB(\frac{1}{x})+x^{n-m+1}x^{m-1}R(\frac{1}{x})\\ \Rightarrow&A^r(x)\equiv Q^r(x)B^r(x)\pmod {x^{n-m+1}} \end{aligned} \]


代码晚点补

转载于:https://www.cnblogs.com/butterflydew/p/11041754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值