2016-02-11 49 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 

,但一如既往,因人而异