Обчисліть середнє значення
Усі ми знаємо, як ітеративно обчислити середнє значення:
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]))