博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4781 【模板】拉格朗日插值
阅读量:6415 次
发布时间:2019-06-23

本文共 1080 字,大约阅读时间需要 3 分钟。

思路

拉格朗日插值是一种能够根据n个点\((x_i,y_i)\)求出对应多项式的方法

定义拉格朗日插值的基函数\(L(i)\)
\[ L(i)=\prod_{j=0,j\not=i}^n\frac{x-x_j}{x_i-x_j}y_i \]
容易发现这个函数的特点就是当\(x=x_i\)时,\(y=y_i\),其他时候\(y=0\)
所以最后插值出来的多项式就是这n个基函数求和(恰好在每个\(x_i\)处取到\(y_i\)
\[ G(x)=\sum_{i=0}^n L(i) \]
然后没了
还有重心拉格朗日插值之后再说

代码

#include 
#include
#include
#define int long longusing namespace std;const int MOD = 998244353;int pow(int a,int b){ int ans=1; while(b){ if(b&1) ans=(ans*a)%MOD; a=(a*a)%MOD; b>>=1; } return ans;}int n,k,x[2020],y[2020];signed main(){ scanf("%d %d",&n,&k); for(int i=1;i<=n;i++){ scanf("%d %d",&x[i],&y[i]); } int ans=0; for(int i=1;i<=n;i++){ int up=1,down=1; for(int j=1;j<=n;j++) if(i!=j){ up=up*(k-x[j]+MOD)%MOD; down=down*(x[i]-x[j]+MOD)%MOD; } ans=(ans+up*y[i]%MOD*pow(down,MOD-2)%MOD+MOD)%MOD; // printf("%d\n",ans); } printf("%d\n",ans); return 0;}

转载于:https://www.cnblogs.com/dreagonm/p/10551739.html

你可能感兴趣的文章
【iCore3 双核心板_FPGA】实验二十:基于FIFO的ARM+FPGA数据存取实验
查看>>
java一个数分解的质因数java
查看>>
android framework-安装samba
查看>>
配置WCF的心得
查看>>
飞雪连天射白鹿笑书神侠倚碧鸳
查看>>
排名中国重读“发展Linux,中日两国之比较”有感-java教程
查看>>
VC6.0代码移植到VS2008运行时乱码问题解决
查看>>
反射实例
查看>>
Linux安装Jdk,CentOS安装Jdk
查看>>
iOS之事件穿透
查看>>
Oracle API Availability – Profile
查看>>
Chromium Embedded Framework中文文档 (如何链接不同的运行时)
查看>>
【PAT】1029. Median (25)
查看>>
web项目的getContextPath()
查看>>
SpringMvc中两个Controller类之间传递参数的方法
查看>>
.NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(二)
查看>>
【WP7】转:Windows Phone 7 开发 31 日谈 目录
查看>>
6. datasource - mysql【从零开始学Spring Boot】
查看>>
编写病毒程序取款700余万,华夏银行一技术处长被捕受审
查看>>
阿里成立达摩院做基础科研 这是一家被电商掩盖的科技公司
查看>>