CommencezCommencez gratuitement

Calculer une valeur moyenne

Nous savons tous comment calculer une valeur moyenne de façon itérative:

def average(nums):

    result = 0

    for num in nums:
        result += num

    return result/len(nums)

Pouvez-vous proposer une solution récursive? Une formule pour mettre à jour une moyenne lorsqu'une nouvelle valeur arrive peut être utile:

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

Ici, \(\bar x\) désigne une valeur moyenne, \(x_i\) est une nouvelle valeur fournie qui sert à mettre à jour la moyenne, et \(n\) correspond au rang de l'appel récursif (en excluant l'appel initial de la fonction).

Cette activité fait partie du cours

S'entraîner aux questions d'entrevue de programmation en Python

Voir le cours

Instructions de l’exercice

  • Donnez le cas de base de l'algorithme.
  • Définissez l'appel récursif pour mettre à jour la valeur moyenne.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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]))
Modifier et exécuter le code