Использование базовой арифметики для вычисления числа Пи с произвольной точностью

Я ищу формулу / алгоритм для вычисления PI ~ 3,14 с заданной точностью.

Формула / алгоритм должны иметь только самую простую арифметику, например

  • +: Добавление
  • -: Subtraction
  • *: Multiplication
  • /: Divison

, потому что я хочу реализовать эти операции на 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 -м вычисленным членом и рассматривать это как текущую ошибку.

В любом случае, я понимаю. ищу формулу / алгоритм, которые обладают этими свойствами, а также быстрее сходятся к Pi

5
задан Isaac 19 December 2010 в 18:41
поделиться