ζ(2)の値を調べる
Q&A
前回に続き数理のプログラミングについて質問です。
今回はゼータ関数についての質問で、
の、s=2についての値を調べてみたいのですが、実行回数をどんな値にしても
$ ./a.out
ζ(2)の値を求めます。
試行回数を入力して下さい: 2
ζ(2)=1.000000000
と、1となってしまいます。(試行回数が2の場合、1/1+1/4=1.25となるはず。)
私は以下のようにプログラミングをしたのですが、どの部分が変なのかがよくわからなかったので質問している次第です。
#include <stdio.h>
double sum(int n)
{
int i;
double s;
s=0.0;
for(i=1;i<=n;i++){
s=s+(1/(i*i));
}
return s;
}
int main(void)
{
int i,n;
printf("ζ(2)の値を求めます。\n");
printf("試行回数を入力して下さい: "); scanf("%d",&n);
printf("ζ(2)=%.9f\n",sum(n));
return 0;
}
ζ(2)のプログラムをもとに、ζ(n) (n>2 n=1は∞と発散するらしい。)を作成したいので、ご回答頂けたらとても助かります。
0