Calcola un valore medio
Sappiamo tutti come calcolare un valore medio in modo iterativo:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Sai proporre una soluzione ricorsiva? Ti può tornare utile la formula per aggiornare una media dato un nuovo valore in ingresso:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Qui \(\bar x\) indica il valore medio, \(x_i\) è un nuovo valore fornito usato per aggiornare la media e \(n\) corrisponde al numero di chiamate ricorsive (escludendo la chiamata iniziale alla funzione).
Questo esercizio fa parte del corso
Esercitarsi con le domande di colloquio di coding in Python
Istruzioni dell'esercizio
- Fornisci il caso base dell'algoritmo.
- Definisci la chiamata ricorsiva per aggiornare il valore medio.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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]))