关系变成没关系,问题是没问题。
——
|

DengDuck

园龄:3年7个月粉丝:37关注:22

拉格朗日插值学习笔记

这个算法的用途是,给出 n 个点,第i个点为(xi,yi),它可以找出一个 n1 次的多项式f(x),以便求出x值为其他情况。

当然也是可以用来整活的,可以构造一些奇奇怪怪的多项式坑人。

首先这个多项式存在是显然的,然后我们求它的方式是一个构造。

我们考虑跟中国剩余定理一个思路,对于xi,我们考虑其他的项都消成 0,只有一项为yi,就构造出来了。

那么,我们不难想象出一个函数fi(x)来处理xi的影响:

fi(x)=yiijxxjxixj

对于其他的xj,这一项一定可以消成 0,而对于x=xi,则式子刚好为yi,也就符合了条件。

于是我们构造出:

f(x)=i=1nfi(x)

我们就可以求解了,时间复杂度为O(n2),核心实现如下。

for(int i=1;i<=n;i++)
{
cnt1=1,cnt2=1;
for(int j=1;j<=n;j++)
{
if(i==j)continue;
cnt1=cnt1*(k-x[j])%mod;
cnt2=cnt2*(x[i]-x[j])%mod;
}
ans=(ans+y[i]*cnt1%mod*ksm(cnt2,mod-2)%mod+mod)%mod;
}
posted @   DengDuck  阅读(16)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起