Я только что сделал программу, которая вычисляет пи. Тем не менее, даже с 10 миллионами итераций мой результат немного отличается. Я получаю 3.141592 7535897831 , тогда как уже на раннем этапе это неправильно. Он должен быть 3.141592 653589793238 ...
Итак, мой вопрос: какое количество итераций требуется для получения хотя бы точного ответа вплоть до 10 ^ -16
Вот мой код, если кому-то интересно:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
long double pi = 4.0;
long double tempPi;
for (int i = 1, j = 3; i <= 10000000; i++, j+=2)
{
tempPi = static_cast<double>(4)/j;
if (i%2 != 0)
{
pi -= tempPi;
}
else if (i%2 == 0)
{
pi += tempPi;
}
}
cout << "Pi has the value of: " << setprecision(16) << fixed << pi << endl;
system("pause");
return 0;
}
Любые советы, связанные с производительностью, также приветствуются.