我想改进此代码以提高性能。运行大约需要1.5秒,但我想要更好的东西。我尝试了方法(A)但是花了更多的时间。我可以帮忙吗?
这是代码:
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 :(得分:0)
至于从小变化中获得更好的性能,在我的系统上用k * k替换k ** 2几乎使性能增加了三倍:
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
但与往常一样,YMMV