0

如何在不使用库的情况下使用 Python 创建一个方法来添加列表中的浮点数?老师给了我们这段代码,我没看懂,谁能再给我一个例子?

def msum(iterable):
    "Full precision summation using multiple floats for intermediate values"
    partials = []               # sorted, non-overlapping partial sums
    for x in iterable:
        i = 0
        for y in partials:
            if abs(x) < abs(y):
                x, y = y, x
            hi = x + y
            lo = y - (hi - x)
            if lo:
                partials[i] = lo
                i += 1
            x = hi
        partials[i:] = [x]
    return sum(partials, 0.0)
4

1 回答 1

1

python 中的 Kahan 算法版本如下所示:

def msum(input):
    sum = 0.0
    c = 0.0
    for x in input:
        y = x - c
        t = sum + y
        c = (t - sum) - y
        sum = t

    return sum

“不使用其他库”是什么意思?当然你可以有

def msum(input):
    return sum(input)
于 2012-09-17T05:37:03.713 回答