2012-12-09 37 views
-4

我在寫一個函數來計算pi的近似值時遇到了困難,使用萊布尼茲符號。Leibniz公式Pi - Python

萊布尼茲公式:

http://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80#Inefficiency

如果有人能幫點我這樣做的正確的方向,這將是巨大

感謝

+0

@ A.R.S。該評論太舊了;) –

+0

@ Mr.Alien它可能是,但它是一個重要的。 – arshajii

+0

@ A.R.S。哈哈同意,但只是試圖做一個新的版本;) –

回答

2

那麼這裏是我的想法,使用sum和一個生成器表達式:

n = 5000000 # terms of sequence to include 

print 4 * sum((-1.)**k/(2*k + 1) for k in xrange(n)) 
print math.pi # for comparison 
 
3.14159245359 
3.14159265359 

使用您發佈的身份:

enter image description here

如果您尚未閱讀它,這個總和收斂得相當慢,所以它不是近似PI一個特別好的辦法。

+0

這將是更快的總結奇數和偶數的sepratly,而不是使用'** k':'print 4 *(sum((1。)/ (1,n,2)中的k對於xrange(0,n,2)中的k)+ sum(( - 1。)/(2 * k + 1)))' – zenpoy

+0

除非python有優化'-1'的權力..我們必須時間 – zenpoy