0

开发一个 Python 函数 foo(l) 给定一个列表 l 数字返回加权平均值 w 对于 a1,a2...an 定义为:

在此处输入图像描述

如果需要,函数 wavg(l) 可以使用其他子函数。至少一个开发的函数必须是递归的。​</p>

我的实现如下,但我不知道我是否正确解释了求和公式:

def wavg(L):
    if len(L) == 1:
        return L[0]/len(L)
    else:
        return L[len(L)-1]/len(L) + wavg(L[:-1])
4

1 回答 1

1

对我来说看起来不错。考虑一个例子:

L = [5,5,5]

通过运行你的函数,我得到 9.166。

如果我们做数学,计算是

5/1 + 5/2 + 5/3 = 5 + 2.5 + 1.66 = 9.166

因此,要回答您的问题,是的,您已经正确解释了总和。

于 2021-09-18T11:55:11.017 回答