Я выполняю упражнение, которое запрашивает функцию, которая аппроксимирует значение pi, используя формулу Лейбница. Это объяснения в Википедии:
! enter image description here
Логическое мышление приходит ко мне легко, но мне не уделялось много формального образования по математике, поэтому я немного потерял то, что представляют собой самые левые символы во втором. Я попытался сделать код pi = ((-1)**n/(2*n + 1)) * 4
, но это вернуло 1.9999990000005e-06
вместо 3.14159 ..., поэтому вместо этого я использовал шаблон аккумулятора (так как глава руководства, о котором это говорилось, также упоминает их), и он работал нормально. Однако я не могу не думать о том, что это несколько надуманно, и, вероятно, это лучший способ сделать это, учитывая, что Python сосредоточен на простоте и делает программы как можно более короткими. Это полный код:
Формула Лейбница для π - Это хорошо? (Python)
def myPi(n):
denominator = 1
addto = 1
for i in range(n):
denominator = denominator + 2
addto = addto - (1/denominator)
denominator = denominator + 2
addto = addto + (1/denominator)
pi = addto * 4
return(pi)
print(myPi(1000000))
Кто-нибудь знает лучше функцию?
Это означает - * вычисляет суммирование присоединенного выражения при п = 0 до бесконечности * –
@RohitJain Спасибо за информацию! – reggaelizard
Вы обнаружите, что самая большая проблема [не является алгоритмом] (http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems). –