Zacznij terazZacznij za darmo

Oblicz wartość średnią

Wszyscy wiemy, jak obliczyć wartość średnią iteracyjnie:

def average(nums):

    result = 0

    for num in nums:
        result += num

    return result/len(nums)

Czy potrafisz zaproponować rozwiązanie rekurencyjne? Przyda się wzór na aktualizację wartości średniej po otrzymaniu nowej danej:

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

W tym wzorze \(\bar x\) oznacza wartość średnią, \(x_i\) to nowa wartość używana do jej aktualizacji, a \(n\) odpowiada numerowi wywołania rekurencyjnego (z wyłączeniem pierwszego wywołania funkcji).

To ćwiczenie jest częścią kursu

Ćwiczenie pytań na rozmowach kwalifikacyjnych z programowania w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj przypadek bazowy algorytmu.
  • Zaimplementuj wywołanie rekurencyjne do aktualizacji wartości średniej.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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]))
Edytuj i uruchom kod