杭電2086,數學歸納法

來源:互聯網
上載者:User

標籤:io   for   c   amp   數學   總結   

Ai = (Ai-1 + Ai+1)/2 - Ci (i = 1, 2, 3, .... n). 用A5做示範,就能猜測出公式來。證明方法可以採用數學歸納法。這裡證明從略。
A5= (A4+ A6) / 2 - C5

A4= (A3+ A5) / 2 - C4= A3/ 2 + A4/ 4 + A6/ 4 - C5/ 2 - C4
=>A4= 2A3/3 + A6/3 - 2C5/3 - 4C4/3 

A3= (A2+ A4) / 2 - C3= A2/ 2 + A3/ 3 + A6/ 6 - C5/ 3 - 2C4/ 3 - C3
=>A3= 3A2/4 + A6/4 - C5/2 - C4- 3C3/2 

A2= (A1+ A3) / 2 - C2= A1/ 2 + 3A2/ 8 + A6/ 8 - C5/ 4 - C4/ 2 - 3C3/ 4 - C2
=>A2= 4A1/5 + A6/5 - 2C5/5 - 4C4/5 - 6C3/5 - 8C2/5 

A1= (A0+ A2) / 2 - C1= A0/ 2 + 2A1/ 5 + A6/ 10 - C5/ 5 - 2C4/ 5 - 3C3/ 5 - 4C2/ 5 - C1
=>A1= 5A0/6 + A6/6 - C5/3 - 2C4/3 - C3- 4C2/3 - 5C1/3 

算到這裡,我想你已經總結出公式了:
A1 = (n * A0+ An+1- 2 * Cn- 4 * Cn-1- ... - 2 * i * Cn-i+1- 2 * n * C1) / (n + 1) 

#include<stdio.h>
int main()
{
 int n,i,j;
 double a1,x,y,c[3005];
 while(scanf("%d",&n)!=EOF)
 {
  scanf("%lf%lf",&x,&y);
  for(i=1;i<=n;i++)
  scanf("%lf",c+i);
  a1=n*x+y;
  for(i=n;i>0;i--)
      {
       a1-=2*i*c[n-i+1];
      }
      printf("%.2lf\n",a1/(n+1));
 }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.