CommencerCommencez gratuitement

Calculer une valeur moyenne

Nous savons tous calculer une moyenne de manière itérative :

def average(nums):

    result = 0

    for num in nums:
        result += num

    return result/len(nums)

Pouvez-vous proposer une solution récursive ? La formule suivante pour mettre à jour une moyenne à l’arrivée d’une nouvelle valeur peut être utile :

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

Ici, \(\bar x\) désigne la valeur moyenne, \(x_i\) est la nouvelle valeur utilisée pour mettre à jour la moyenne, et \(n\) correspond au numéro de l’appel récursif (en excluant l’appel initial de la fonction).

Cet exercice fait partie du cours

<cours>S’exercer aux questions d’entretien de code en Python</cours>
Voir le cours

Instructions de l’exercice

  • Définissez le cas de base de l’algorithme.
  • Écrivez 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