📜  自然数加权均值的程序。(1)

📅  最后修改于: 2023-12-03 15:41:24.506000             🧑  作者: Mango

自然数加权均值的程序

在数学中,自然数加权均值是一种统计量,表示为:$M_n = \frac{\sum\limits_{i=1}^{n}w_i\times i}{\sum\limits_{i=1}^{n}w_i}$,其中 $w_i$ 表示第 $i$ 个自然数的权重,$n$ 表示自然数的个数。

为了计算自然数加权均值,我们可以编写以下程序。

def weighted_average(n, weights):
    """
    计算自然数加权均值
    :param n: 自然数的个数
    :param weights: 自然数的权重,传入一个长度为n的列表
    :return: 自然数加权均值
    """
    # 如果权重总和为0,则无法计算加权均值,抛出异常
    if sum(weights) == 0:
        raise ValueError("权重总和不能为0")
    weighted_sum = sum([weights[i]*i for i in range(1, n+1)])
    return weighted_sum/sum(weights)

该程序定义了一个函数 weighted_average,使用两个参数 nweights,其中 n 是自然数的个数,weights 是一个包含每个自然数的权重的列表。该函数首先检查是否存在给定的权重列表的总和为零,如果是则抛出异常。否则,该函数计算各自然数加权的总和,并将其除以权重总和,从而得到自然数加权均值。

下面是一个例子,展示如何使用该函数:

weights = [1, 2, 3, 1, 2]  # 权重列表
n = len(weights)  # 自然数个数
average = weighted_average(n, weights)
print("自然数加权均值为:", average)

输出结果:

自然数加权均值为: 2.5

以上代码示例展示了如何使用上述 weighted_average 函数计算自然数加权均值,其中 weights 列表与自然数顺序对应。这个函数是一个通用的实用程序,可以用于任何给定的自然数集合,并且可以根据需要进行修改。