开始使用免费开始使用

Calculate an average value

We all know how to calculate an average value iteratively:

def average(nums):

    result = 0

    for num in nums:
        result += num

    return result/len(nums)

Could you provide a recursive solution? A formula for updating an average value given a new input might be handy:

$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$

Here, \(\bar x\) stands for an average value, \(x_i\) is a new supplied value which is used to update the average, and \(n\) corresponds to the recursive call number (excluding the initial call to the function).

本练习是课程的一部分

Practicing Coding Interview Questions in Python

查看课程

练习说明

  • Provide the base case for the algorithm.
  • Define the recursive call for updating the average value.

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Calculate an average value of the sequence of numbers
def average(nums):
  
    # Base case
    if len(nums) == ____:  
        return ____[____]
    
    # Recursive call
    n = len(nums)
    return (____ + ____ * ____) / ____

# Testing the function
print(average([1, 2, 3, 4, 5]))
编辑并运行代码