ZOJ-1007-Numerical Summation of a Series
題解中的代碼,解釋一下數(shù)學(xué)部分。
順便感謝做題解的大神。
#include<stdio.h>
int main()
{
double sum,a,k;
for(a=0.000;a<=2.000;a=a+0.001)
{
sum=0;
for(k=1;k< 10000;k++)
{
sum=sum+(1-a)/(k*(k+1)*(k+a));
}
sum=sum+(1-a)/(2*10000*10000)+1.0;
printf("%5.3f %16.12f\n", a, sum );
}
return 0;
}
sum的表達(dá)式
實(shí)際上表達(dá)的是f(x)-f(1),精度見下。for中k<10000
題目要求error less than 0.5e-12,因?yàn)榉帜钢杏衚的立方,所以取了10000。(公式求的不一樣,會(huì)出現(xiàn)不一樣的k)對(duì)sum的精度補(bǔ)充
對(duì)導(dǎo)出的公式放縮(k,k+1,k+2均換為k),得到的求和式再用hint里的公式,求積分,解決。精度補(bǔ)充完成,最后記得加上f(1)。