Bereken een gemiddelde waarde
We weten allemaal hoe je iteratief een gemiddelde kunt berekenen:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Kun je een recursieve oplossing geven? Een formule om een gemiddelde bij te werken met een nieuwe invoer kan handig zijn:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Hier staat \(\bar x\) voor een gemiddelde waarde, is \(x_i\) een nieuw aangeleverde waarde die wordt gebruikt om het gemiddelde bij te werken, en komt \(n\) overeen met het nummer van de recursieve aanroep (exclusief de eerste aanroep van de functie).
Deze oefening maakt deel uit van de cursus
Oefenen met coding-interviewvragen in Python
Oefeninstructies
- Geef de basisgeval (base case) voor het algoritme.
- Definieer de recursieve aanroep om de gemiddelde waarde bij te werken.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# 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]))