НачатьНачать бесплатно

Вычислите среднее значение

Все мы знаем, как вычислить среднее значение итеративно:

def average(nums):

    result = 0

    for num in nums:
        result += num

    return result/len(nums)

Сможете предложить рекурсивное решение? Пригодится формула обновления среднего значения при поступлении нового элемента:

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

Здесь \(\bar x\) — текущее среднее значение, \(x_i\) — новый поступивший элемент, на основе которого обновляется среднее, а \(n\) соответствует номеру рекурсивного вызова (без учёта начального вызова функции).

Это упражнение является частью курса

Практика задач для собеседования по программированию на Python

Посмотреть курс

Инструкции к упражнению

  • Определите базовый случай алгоритма.
  • Реализуйте рекурсивный вызов для обновления среднего значения.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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]))
Редактировать и запускать код