Calcular um valor médio
Todos sabemos como calcular um valor médio de forma iterativa:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Você consegue fornecer uma solução recursiva? A fórmula para atualizar um valor médio dado um novo valor de entrada pode ajudar:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Aqui, \(\bar x\) representa o valor médio, \(x_i\) é um novo valor fornecido para atualizar a média, e \(n\) corresponde ao número da chamada recursiva (excluindo a chamada inicial da função).
Este exercício faz parte do curso
Praticando questões de entrevista de código em Python
Instruções do exercício
- Forneça o caso base do algoritmo.
- Defina a chamada recursiva para atualizar o valor médio.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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]))