2016-02-11 69 views
-1

我想改進此代碼的性能。它需要大約1.5秒的時間才能運行,但我正在努力獲得更好的結果。我嘗試了方法(A),但它需要更多時間。我可以幫忙嗎?性能改進python

這是代碼:

def approx_pi2(n=10000000): 
    val = 0. 
    for k in range(1,n+1): 
     val += 1./k**2 
    return (6 * val)**.5 

這是我的方法(A):

# (sum(1./k**2 for k in range(1,10000001))*6)**.5 
+0

您可以使用numpy – user2255757

+0

發生器針對內存使用進行了優化,而非運行時間。 – chepner

+2

你會得到這樣的最好的性能改進算法。例如,使用更快收斂的系列。鑑於您正在使用有限精度的浮點數,但最簡單的改進將是「導入數學;返回math.pi'。 – user2357112

回答

0

至於正從微小變化更好的性能,在我的系統更換ķ** 2 K *ķ近兩倍的性能:

def approx_pi2(n=10000000): 
    val = 0.0 
    for k in range(1, n + 1): 
     val += 1.0/(k * k) 
    return (6.0 * val) ** 0.5 

,但一如既往,因人而異