数列求值

对于一个含有 n+2n+2 个元素的数列,A_0, A_1, \cdots A_nA0?,A1?,?An?,满足这样的递归公式

\displaystyle A_i = \frac{A_{i-1} + A_{i + 1}}{2} - C_i\ \ \ 1 \le i \le nAi?=2Ai−1?+Ai+1??−Ci?   1≤i≤n

现在我们知道 A_0, A_{n + 1}A0?,An+1? 和 C_1, C_2, \cdots C_nC1?,C2?,?Cn?。

现在请你帮忙计算 A_1A1? 的值。

输入格式

第一行输入一个整数 n(1 \le n \le 1000)n(1≤n≤1000)。

第二行输入两个数 A_0A0? 和 A_{n+1}An+1?,接着是 nn 个数据分别是 C_1,C_2, \cdots C_nC1?,C2?,?Cn?。所有的数据均是两位小数的浮点数。

输出格式

输出 A_1A1? 的值,结果保留两位小数。

样例输入1

1
50.50 25.50
10.15

样例输出1

27.85

样例输入2

2
-756.89 52.52
172.22 67.17

样例输出2

-761.49

由公式可以推出(不考虑C):

A2=2*A1-A0;

A3=2*A2-A1=3A1-2*A0;

A4=2*A3-A2=4*A1-3*A0;

An+1=(n+1)*A1-...

设A1的值为0,通过递推计算出An+1的值为r,然后给出真正的An+1的值t,则t-r所得的结果即为(n+1)个A1的值。

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3
 4 double a[1010];
 5
 6 int main(){
 7     int n;
 8     double an1,c;
 9     cin>>n;
10     cin>>a[0]>>an1;
11     a[1]=0;
12     for(int i=2;i<=n+1;i++){
13         cin>>c;
14         a[i]=2*a[i-1]-a[i-2]+2*c;
15     }
16     printf("%.2lf\n",(an1-a[n+1])/(n+1));
17     return 0;
18 }

原文地址:https://www.cnblogs.com/Kiven5197/p/8672428.html

时间: 2024-11-09 04:26:14

数列求值的相关文章

python迭代器实现斐波拉契求值

斐波那契数列(Fibonacci sequence),又称黄金分割数列,也称为"兔子数列":F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*).例如 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........这个数列从第3项开始,每一项都等于前两项之和,而且当n趋向于无穷大时,前一项与后一项的

函数求值(swust oj0274)

函数求值(0274) Time limit(ms): 1000 Memory limit(kb): 65535 Submission: 1767 Accepted: 324 Accepted 14级卓越班选拔D 15级卓越班选拔D 16级卓越班选拔D 定义函数g(n)为n最大的奇数因子. 求f(n)=g(1)+g(2)+g(3)+-+g(n). Description 有多组测试数据(不超过50). 每组数据一个整数n(0 < n <= 10^8). Input 输出对应的f(n),每组数据占

GMA Round 1 数列求单项

传送门 数列求单项 在数列{$a_n$}中,$a_1=-\frac{1}{4}$,$\frac{1}{a_{n+1}}+\frac{1}{a_n}=\begin{cases}-3(n为偶数)\\3(n为奇数) \end{cases}$ 求$a_{233}$的值,保留6位小数. 设$b_n=\frac{1}{a_n}$,易得$b_n=(-1)^n(3n+1)$,因此$a_n=\frac{1}{(-1)^n(3n+1)}$. 定位:简单题 原文地址:https://www.cnblogs.com/E

表达式求值(from leetcode 241)

给定一个正确的表达式(不用担心不规范的输入),比如2-1-1, 通过在不同位置添加左右括号,改变求值的优先级顺序,求出所有的这些值: Example 1 Input: "2-1-1". ((2-1)-1) = 0 (2-(1-1)) = 2 Output: [0, 2] Example 2 Input: "2*3-4*5" (2*(3-(4*5))) = -34 ((2*3)-(4*5)) = -14 ((2*(3-4))*5) = -10 (2*((3-4)*5)

四则运算表达式求值 OpenJ_Bailian - 4132

四则运算表达式求值 OpenJ_Bailian - 4132 题意:设计一个计算器,实现+-*/以及()的表达式运算求值. 栈的应用,这学期学数据结构,手写了栈练一下~ 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn=10010; //最大表达式长度 4 5 template <typename T> 6 class Stack; 7 8 template <typename T> 9

栈的应用 -- 无括号表达式的求值

package com.learn.algorithm.expression; import java.util.HashMap; import java.util.Map; import java.util.Stack; /** * 无括号表达式求值 * @author Jiekun.Cui * */ public class Expression { /** * 操作符的优先级定义 */ public static Map<String,Integer> optProirity = nul

表达式求值

表达式求值 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述 Dr.Kong设计的机器人卡多掌握了加减法运算以后,近期又学会了一些简单的函数求值,比方,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等.经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式. 如果表达式能够简单定义为: 1. 一个正的十进制数 x 是一个表达式. 2. 假设 x 和 y 是 表达式,则 函数min(x,y )也是表达式,其值为x

递推求值【快速幂矩阵】

递推求值 描述 给你一个递推公式: f(x)=a*f(x-2)+b*f(x-1)+c 并给你f(1),f(2)的值,请求出f(n)的值,由于f(n)的值可能过大,求出f(n)对1000007取模后的值. 注意:-1对3取模后等于2   输入 第一行是一个整数T,表示测试数据的组数(T<=10000)随后每行有六个整数,分别表示f(1),f(2),a,b,c,n的值.其中0<=f(1),f(2)<100,-100<=a,b,c<=100,1<=n<=10000000

数据结构算法C语言实现(八)--- 3.2栈的应用举例:迷宫求解与表达式求值

一.简介 迷宫求解:类似图的DFS.具体的算法思路可以参考书上的50.51页,不过书上只说了粗略的算法,实现起来还是有很多细节需要注意.大多数只是给了个抽象的名字,甚至参数类型,返回值也没说的很清楚,所以很多需要自己揣摩.这也体现了算法和程序设计语言的特点,算法更侧重本质的描述,而任何编程语言都要照顾到实现的细节以及数据类型等语法方面的需求. 表达式求值: [编码中....] 二.头文件 迷宫求解: 1 //3_2_maze.h 2 /** 3 author:zhaoyu 4 email:[em