Aan de slagBegin gratis

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

Bekijk cursus

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]))
Code bewerken en uitvoeren