Calculează o valoare medie
Cu toții știm cum se calculează o valoare medie în mod iterativ:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Poți oferi o soluție recursivă? O formulă pentru actualizarea valorii medii pe baza unui nou element de intrare ar putea fi utilă:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Aici, \(\bar x\) reprezintă valoarea medie, \(x_i\) este noua valoare furnizată, folosită pentru a actualiza media, iar \(n\) corespunde numărului apelului recursiv (excluzând apelul inițial al funcției).
Acest exercițiu face parte din cursul
Exersarea întrebărilor de interviu de programare în Python
Instrucțiuni pentru exercițiu
- Definește cazul de bază al algoritmului.
- Definește apelul recursiv pentru actualizarea valorii medii.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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]))