我做了詢問近似於使用萊布尼茨式的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))
有誰知道一個更好的功能?
這代表 - *計算附着表達的總和爲n = 0到無窮大* –
@RohitJain感謝您的信息! – reggaelizard
你會發現最大的問題[不是算法(http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems)。 –