0
我使用下面的公式估算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++,但不是編程。
啊 - 謝謝你! –