Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么这段Python代码要花费异常长的时间来计算总和?_Python_Algorithm_Code Analysis - Fatal编程技术网

为什么这段Python代码要花费异常长的时间来计算总和?

为什么这段Python代码要花费异常长的时间来计算总和?,python,algorithm,code-analysis,Python,Algorithm,Code Analysis,我喜欢用渐近符号来探讨这个问题:大(O),ω和θ 下面是一小段Python代码。并尝试通过每次提供更大的值来运行它。如果您查看第三个场景(图),代码通常需要更长的时间来计算总和 我想知道我是否可以按顺序重写,会有什么不同吗?如何优化此代码以获取更大的值?谢谢使用numba可以使相同的算法更快: from numba import jit @jit def compute(n): x = 0 for i in range(1, n+1): x += 1/i

我喜欢用渐近符号来探讨这个问题:大(O),ω和θ

下面是一小段Python代码。并尝试通过每次提供更大的值来运行它。如果您查看第三个场景(图),代码通常需要更长的时间来计算总和


我想知道我是否可以按顺序重写,会有什么不同吗?如何优化此代码以获取更大的值?谢谢

使用numba可以使相同的算法更快:

from numba import jit

@jit
def compute(n):
    x = 0
    for i in range(1, n+1):
        x += 1/i
    return x

print(compute(1000000000))

嗯,1e13是一个很大的数字,这是正常的计算需要很长时间。你可以看看这个。您可以返回
0.5772156649+math.log(n)
作为近似值。同意!如何优化代码并使其更好地用更少的时间处理更大的值。可能的重复: