Я ищу формулу / алгоритм для вычисления PI ~ 3,14 с заданной точностью.
Формула / алгоритм должен иметь только очень базовую арифметику, как
- +: сложение
- -: вычитание
- *: умножение
- /: деление
, потому что я хочу реализовать эти операции в C ++ и сохранитьРеализация настолько проста, насколько это возможно (библиотека bignum не допускается).
Я обнаружил, что эта формула для вычисления Pi довольно проста:
Pi/4 = 1 - 1/3 + 1/5 - 1/7 + ... = sum( (-1)^(k+1)/(2*k-1) , k=1..inf )
(обратите внимание, что (-1) ^ (k + 1) может быть легко реализовано вышеуказанными операторами).
Но проблема этой формулы заключается в невозможности указать количество цифр для вычисления.Другими словами, не существует прямого способа определить, когда прекратить вычисление.
Возможно, для решения этой проблемы можно вычислить разницу между n-1
-ым и n
-ым вычисленным слагаемым и рассмотреть его кактекущая ошибка.
В любом случае, я ищу формулу / алгоритм, которые имеют эти свойства и также сходятся быстрее к Пи