Adloun

Un rang d'arrêt qu'aucune formule ne donne

Exercice d'entraînement · niveau 2 · mathématiques approfondies (ECG 1re année), chapitre 11 — Informatique et algorithmique · Boucles, arrêt et algorithmes

Énoncé

Écrire une fonction qui renvoie le plus petit entier tel que , pour un réel donné. Justifier que la boucle s'arrête, puis donner les résultats pour et .

Corrigé

Ce qu'on montre. Qu'une boucle while est le bon outil quand le nombre d'itérations n'est pas connu d'avance — et que sa terminaison se démontre, elle ne se constate pas.

Le programme.

def rang_depassement(S):
    """Plus petit n tel que 1 + 1/2 + ... + 1/n depasse S."""
    n = 0
    somme = 0.0
    while somme <= S:      # on s'arrete des que le seuil est franchi
        n = n + 1
        somme = somme + 1 / n
    return n

print(rang_depassement(5))    # 83
print(rang_depassement(10))   # 12367

La terminaison. À la sortie de chaque tour, la variable somme contient . La série harmonique diverge : . Il existe donc un rang à partir duquel , et la condition somme &lt;= S devient fausse : la boucle s'arrête. C'est bien la divergence, et rien d'autre, qui garantit l'arrêt — si l'on remplaçait par , la boucle tournerait indéfiniment pour tout .

Les résultats. Le programme donne pour et pour .

Ce que ces deux nombres racontent. Passer de à multiplie le rang par près de . C'est cohérent avec l'encadrement classique : franchir demande de l'ordre de , et . La croissance est exponentielle en : pour , il faudrait environ termes.

Point délicat. L'accumulation se fait en flottants, et les termes ajoutés deviennent minuscules devant la somme courante. Pour de grands , l'addition finit par ne plus rien changer et le programme boucle sans fin — non par un défaut de mathématiques, mais par un défaut d'arithmétique. Un critère d'arrêt purement numérique doit toujours être confronté à la précision de la machine.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.