次の式を使用して Pi の値を推定しています。
次の C++ コードを使用します。
double sub = 0;
int prec = 1000; //How many iterations to use in estimate.
for(int i = 1; i <= prec; i++){
double frac = 1/((3+(2*(i-1))) * pow(3, i));
sub += (i == 1) ? 1-frac : (i%2) ? -frac : frac;
}
double pi = sqrt(12)*sub;
cout << "Pi estimated with precision of " << prec << " iterations is " << pi << ".\n";
私の問題は、1000回(または100000回)の繰り返しでも、得られる最高の精度が3.14159
. 計算で各数値を使用static_cast<double>()
してみましたが、それでも同じ結果が得られます。ここで何か間違ったことをしていますか、それともこれがこのメソッドがもたらす最大精度ですか? 私は C++ は初めてですが、プログラミングは初めてです。