Výpočet průměrné hodnoty
Průměrnou hodnotu iterativně umíme spočítat asi všichni:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
Dokážeš napsat rekurzivní řešení? Přijde ti vhod vzorec pro aktualizaci průměrné hodnoty po přidání nového vstupu:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
Zde \(\bar x\) označuje průměrnou hodnotu, \(x_i\) je nově přidaná hodnota, která průměr aktualizuje, a \(n\) odpovídá číslu rekurzivního volání (bez počítání počátečního volání funkce).
Toto cvičení je součástí kurzu
Procvičování otázek z kódovacích pohovorů v Pythonu
Pokyny k cvičení
- Definuj základní případ algoritmu.
- Definuj rekurzivní volání pro aktualizaci průměrné hodnoty.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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]))