【ybt金牌导航8-3-1】【luogu P4781】函数求值 / 【模板】拉格朗日插值
函数求值 / 【模板】拉格朗日插值
题目链接:ybt金牌导航8-3-1 / luogu P4781
题目大意
给定一个 n 项式上的 n 个点的坐标,然后问你这个多项式 y=f(k) 的 f(k) 值。
思路1
首先,我们考虑拉格朗日插值的朴素法。
那它是怎样的呢?
我们考虑构造 个函数,分别对应 个点,这些函数只在 值为对应点的 值时才为 ,如果在不是对应点的点,值就为 。
那怎么构造出这个函数呢?
可以这样, 是这个函数的 值, 是对应点的坐标。
因为如果 是 ,那你会发现,分数上下都是一样,那就都是 ,乘起来也是 。
那如果不是 ,而且是在另一个点上,那它必然会存在一个 ,使得它的 坐标跟 的一样,那上面就变成了 ,那这个分数就变成了 。有一个乘起来的变成了 ,那全部也会变成 。
那你看如何还原出那个多项式。
这里给出还原方法,其实很好理解:
没错,就是每一个 函数都是觉得一个点的值为 ,然后乘上 值就是那个点的大小。这个时候其它点的 函数都是 ,那整个函数的值就是 值了。
然后就是两个枚举就好了。
如果要还原出多项式,就要 ,不是特别优秀。
代码1
思路2
我们考虑弄一下上面的公式。
考虑到那个累乘的 很烦,那我们这样,把累乘那里乘上 ,然后你的分子就可以整个脱离出来。
然后在前面乘的 再除回去。
那就会变成这个:
那你如果要求多项式,你可以枚举 ,然后把 拿到外面,然后每次就可以用总共的减去不需要的,就可以 求前面的累乘和你提出来的。
然后其他的也很好求,就可以 求。
然后如果要多一个插入的点,你就把最里面的累乘多除以 ,然后就可以 求累加的。然后左边的累乘简单一搞就好,那就可以 插入。
而这个东西,就叫做重心拉格朗日插值法。
代码2
__EOF__

本文作者:あおいSakura
本文链接:https://www.cnblogs.com/Sakura-TJH/p/YBT_JPDH_8-3-1.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Sakura-TJH/p/YBT_JPDH_8-3-1.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现