ZOJ Problem Set - 1007
Numerical Summation of a Series
文章来源
这道题基本算是纯数学题,下次见到类似的记得不要慌!
假设n是要达到精度要求的要计算到的数:
到这里就差不多了,e*中我觉得只要考虑后面部分就可以了,在大于n时是小于1/(3*n^3)的,在n达到4次方的数量级时,误差就小于10^-12了,所以计算的次数就在10000以内了,开始的时候为了保险,开了100000,6秒多过了,后来一步步往下降,到8000也可以,0.5秒多,5000就不行,中间就没试了,没意思的,反正是达不到一大片人的0.00s,0.01s了,郁闷~~~~~
#include<stdio.h>
int main()
{
double sum,x,k;
int i;
x=0.000;
for (i=0;i<=2000;i++)
{
sum=0.0;
for (k=1;k<8000;k++)
sum+=1/(k*(k+1)*(k+2)*(k+x));
sum=((2-x)*sum+0.25)*(1-x)+1;
printf("%5.3f %16.12fn",x,sum);
x+=0.001;
}
return 0;
}