1608: 大三上之东征西讨
Time Limit: 1 Sec Memory Limit: 128 MB[Submit][Status][Web Board]
Description
这个时候的你已经学完了所有的数学,那么就来算一算这个数学题吧
考虑如下生成的数列:
a0 = 2, ai = aj + ak, i > 0, j, k从[0, i-1]的整数中随机选出(j和k独立)。
现在给定n,要求求出E(an),即各种可能的a数列中an的期望值。
Input
一行一个整数n,表示第n项。(1<=n<=500)
Output
一行一个实数,表示答案(保留6位小数)。
Sample Input
1
Sample Output
4.000000
【分析】
一样没什么大问题的题目....只要知道期望值是啥就可以了~
【代码】
#include <stdio.h>
int main()
{
double a[1000]={0};
a[0]=2;
for (int i=1;i<=550;i++)
{
double s=0;
for (int j=0;j<i;j++)
s+=2*i*a[j];
a[i]=s/i/i;
}
int n;
while (~scanf("%d",&n)) printf("%f\n",a[n]);
return 0;
}
int main()
{
double a[1000]={0};
a[0]=2;
for (int i=1;i<=550;i++)
{
double s=0;
for (int j=0;j<i;j++)
s+=2*i*a[j];
a[i]=s/i/i;
}
int n;
while (~scanf("%d",&n)) printf("%f\n",a[n]);
return 0;
}