如何使用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)
答案 0 :(得分: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)