Kom igångKom igång gratis

Beräkna ett medelvärde

Vi vet alla hur man beräknar ett medelvärde iterativt:

def average(nums):

    result = 0

    for num in nums:
        result += num

    return result/len(nums)

Kan du skriva en rekursiv lösning? Följande formel för att uppdatera ett medelvärde givet ett nytt värde kan vara till hjälp:

$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$

Här representerar \(\bar x\) medelvärdet, \(x_i\) är det nya värde som används för att uppdatera medelvärdet, och \(n\) motsvarar rekursionsnivån (exklusive det initiala anropet till funktionen).

Den här övningen är en del av kursen

Öva på kodningsintervjufrågor i Python

Visa kurs

Övningsinstruktioner

  • Ange basfallet för algoritmen.
  • Definiera det rekursiva anropet för att uppdatera medelvärdet.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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]))
Redigera och kör kod