NYOJ 178 找规律(Lagrange插值公式)
来源:互联网 发布:ksweb mysql 编辑:程序博客网 时间:2024/04/28 06:35
链接:click here
描述
题意:
大家一定见过这种题目:给你一些数请找出这些数之间的规律,写出下一个满足该规律的数。
比如:2 5 10 17 26,则可以看出这些数符合n*n+1这个通项公式,则下一个数为37。
这种通项公式不只一个,所以答案是不唯一的。但如果已知了N个数,且已知其通项公式是一个次数小于N的多项式,则答案就唯一确定了。
现在给你一个数列,请找出规律并求出其下一个数为多少?
- 输入
- 第一行是一个整数T表示测试数据的组数(T<=20)
每组测试数据的第一行是一个整数N(1<=N<=5)
随后的一行有N个整数,表示该数列已知了的N个整数(这N个整数的值都不大于1000)。 - 输出
- 输出符合规律的下一个数
- 样例输入
221 252 5 10 17 26
- 样例输出
337
思路:Lagrange插值公式的运用.,
一种离散数学上的方法:
Lagrange插值法和Newton插值法解决实际问题中关于只提供复杂的离散数据的函数求值问题,
通过将所考察的函数简单化,构造关于离散数据实际函数f(x)的近似函数P(x),从而可以计算未知点出的函数值,是插值法的基本思路。
代码:
#include <math.h>#include <queue>#include <deque>#include <vector>#include <stack>#include <stdio.h>#include <ctype.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <algorithm>using namespace std;#define Max(a,b) a>b?a:b#define Min(a,b) a>b?b:a#define mem(a,b) memset(a,b,sizeof(a))int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};const double eps = 1e-6;const double Pi = acos(-1.0);static const int inf= ~0U>>2;static const int maxn =110;int in[100],out[100],Map[200];int T,i,j,n;double lagrange(double x,int n) //函数定义{ double xy[5][5]; for(int i=0; i<n; i++) //录入插值点 { xy[i][0]=i+1; cin>>xy[i][1]; } double lag=0.0; for(int i=0; i<n; i++) { double ji=1.0; for(int j=0; j<n; j++) { if(i!=j) ji=ji*((x-xy[j][0])/(xy[i][0]-xy[j][0])); //基函数 } lag=lag +ji* xy[i][1]; //函数值 } return lag;}int main(){ //freopen("Intput.txt","r",stdin); //freopen("Output(2).txt","w",stdout); cin>>T; while(T--) { cin>>n; cout<<lagrange(n+1,n)<<endl; } return 0;}
When you want to give up, think of why you persist until now!
0 0
- NYOJ 178 找规律(Lagrange插值公式)
- NYOJ 题目178 找规律(Lagrange插值)
- Lagrange插值公式
- Lagrange插值函数
- Lagrange插值问题
- Lagrange 插值
- Lagrange插值多项式
- NYOJ - 找规律
- nyoj-639-找规律
- NYOJ找规律
- 拉格朗日Lagrange插值多项式
- 插值法之Lagrange插值
- Lagrange插值求解线性方程
- Lagrange多项式插值计算
- newton插值 lagrange 插值
- 拉格朗日(lagrange)插值计算
- 拉格朗日(lagrange)插值及其MATLAB程序
- 数值分析中插值方法-Lagrange插值
- Configuring Java CAPS for SSL Support - Adapters
- Ext2文件系统初步
- Configuring Java CAPS for SSL Support - KeyStores and TrustStores
- javascript事件处理程序
- Generating a KeyStore and TrustStore
- NYOJ 178 找规律(Lagrange插值公式)
- Python爬虫初步
- pat1016 Phone Bills
- 怎样使用Google App Engine
- 例题10-7 交表 UVa10820
- 程序员绩效考核表
- Java 校验日期(格式:yyyyMMdd)
- 【Puppet2D】教程1
- iOS版本检测代码(更新版本)