学习笔记-拉格朗日插值

公式

拉格朗日插值可以用 n+1 个点值插出一个 n 次多项式。对于 (xi,yi),有如下性质:

f(x)yi0(mod(xxi))

显然 mi=ji(xxj)mi 在模 xxi 意义下的逆为 ji(xixj)。根据中国剩余定理:

f(x)=i=0nyijixxjxixj

这就是拉格朗日插值公式,时间复杂度 O(n2)

一般而言,(xi,yi) 是我们自己决定的,所以通常 x 可以取 [0,1,2,,n]。此时带入公式:

f(x)=i=0nyi1(ni)!(1)ii!ji(kj)

kj 分别求前缀积和后缀积即可。时间复杂度 O(n)

有时候我们还需要知道多项式的系数,观察式子,分子部分是好处理的,分母部分相当于:

j=0n(xxj)xxi

考虑到下面只有两项,O(n) 做多项式除法即可。总时间复杂度 O(n2)

应用

拉格朗日插值通常有两种理解:

  • 答案是一个多项式,并且多项式次数较少。此时可以将所求值直接带入多项式。
  • 直接维护多项式复杂度太高,使用拉格朗日插值优化。

更一般的,插值法实际上指的是函数系数和参数无关的情况,先待定系数,然后带入特殊的参数构造和系数有关的方程求解系数。详见 CF1119H。

自然数等幂和

给定 n,k,求解 i=1nikk106

对应类型一。

对函数 Δf(n,k)=f(n,k)f(n1,k) 是一个 k 次多项式,可以知道原答案是一个 k+1 次多项式。代入 1k+2 点值计算,然后使用上面 O(n) 插值即可。

xzy 讲课题

给定 n 个点的无向图,边有 0,1,2 三种颜色,对于每个三元组 (x,y,z) 求出 0,1,2 颜色数分别为 x,y,z 的方案数。n50

显然可以不用管 z,那么考虑 (x,y)。显然可以把边权写成一个二元 GF,然后矩阵树定理求出边权乘积,求出乘积之后再求出系数。这样做是 O(n6) 的。考虑拉格朗日插值。不过拉插仅限于一元多项式,所以考虑把指数 (a,b) 压到一个 n 进制二进制数中,变成 a+nb,即把 0 标为 x1 标为 xn。此时我们得到了一个次数为 n2 的多项式,带入 n+1x 解出多项式并还原系数即可。时间复杂度 O(n5+n4)

posted @   yllcm  阅读(362)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示