Calcula un valor medio
Todos sabemos calcular un valor medio de forma iterativa:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
¿Puedes proponer una solución recursiva? Puede ayudarte la siguiente fórmula para actualizar una media cuando entra un nuevo valor:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Aquí, \(\bar x\) representa el valor medio, \(x_i\) es un nuevo valor que se usa para actualizar la media, y \(n\) corresponde al número de llamada recursiva (excluyendo la llamada inicial a la función).
Este ejercicio forma parte del curso
Practicing Coding Interview Questions in Python
Instrucciones del ejercicio
- Indica el caso base del algoritmo.
- Define la llamada recursiva para actualizar el valor medio.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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]))