小编Ada*_*dam的帖子

Python中的高效求和

我正在尝试在Python中有效地计算求和的总和:

WolframAlpha能够计算出过高的 n 值:sum 的总和

我有两种方法:for循环方法和np.sum方法。我认为 np.sum 方法会更快。然而,它们在 n 很大之前都是相同的,之后 np.sum 会出现溢出错误并给出错误的结果。

我正在尝试找到计算这个总和的最快方法。

import numpy as np
import time

def summation(start,end,func):
    sum=0
    for i in range(start,end+1):
        sum+=func(i)
    return sum

def x(y):
    return y

def x2(y):
    return y**2

def mysum(y):
    return x2(y)*summation(0, y, x)

n=100

# method #1
start=time.time()
summation(0,n,mysum)
print('Slow method:',time.time()-start)

# method #2
start=time.time()
w=np.arange(0,n+1)
(w**2*np.cumsum(w)).sum()
print('Fast method:',time.time()-start)
Run Code Online (Sandbox Code Playgroud)

python performance sum cumsum

32
推荐指数
3
解决办法
5599
查看次数

标签 统计

cumsum ×1

performance ×1

python ×1

sum ×1