Algorithmique et Python : 20 exercices corrigésmaths Tale spé — du geste seul au problème de contrôle
Vingt exercices où le programme rencontre le cours de terminale : seuils calculés avec ln, dichotomie, méthode des rectangles, méthode d'Euler, simulations et lois de probabilité. Un rappel avant chaque niveau. Suis chaque programme ligne à ligne au brouillon, puis ouvre la correction : elle fait la trace, et la confirme par le calcul.
Un seul geste : exercices 1 à 8niveau 1
Un programme par exercice : le suivre ligne à ligne, noter les valeurs, conclure.
Rappel de cours
- « for k in range(n) » répète le bloc fois, pour k = , , …, . « range(1, n + 1) » va de à .
- « while condition: » répète le bloc TANT QUE la condition est vraie. Pour un seuil, la boucle s'arrête au premier rang où la condition devient fausse.
- « random() » renvoie un nombre au hasard dans : le test « random() < p » est vrai avec la probabilité .
- Une fonction RENVOIE son résultat avec « return ». On l'appelle ensuite comme en maths : u(3), S(4)…
1
On considère la fonction Python suivante : « def u(n): », puis, en retrait, « v = 1 », « for k in range(n): », « v = 0.5 * v + 3 » (en double retrait) et « return v ». a) Quelle suite cette fonction calcule-t-elle ? Donner et la relation de récurrence. b) Faire la trace de u(3). c) Que renvoie u(0) ? Pourquoi ?Voir la correction
a) v part de , puis la boucle remplace v par à chaque tour. C'est la suite définie par et : u(n) renvoie . b) Pour u(3), la boucle fait tours (k = , , ). Départ : v vaut . k = : v vaut . k = : v vaut . k = : v vaut . u(3) renvoie , c'est . c) range(0) est vide : la boucle ne tourne pas, et u(0) renvoie , c'est-à-dire . ⚠️ Le piège : croire que « range(3) » fait tourner la boucle pour k = , , . Il y a bien trois tours, mais k commence à ; ici k ne sert qu'à compter. ⭐ Sur le dessin : la trace, une ligne par tour. La dernière ligne, en rouge, est la valeur renvoyée.k v début 1 0 3.5 1 4.75 2 5.375 2
Voici une fonction : « def S(n): », puis, en retrait, « s = 0 », « for k in range(1, n + 1): », « s = s + k**2 » (en double retrait) et « return s ». a) Faire la trace de S(4). Que calcule S(n) ? b) Un élève écrit « for k in range(n): » à la place. Que renvoie alors son S(4) ? c) Vérifier sur S(4) et S(10) la formule , qu'on démontre par récurrence.Voir la correction
a) k prend les valeurs , , , , et s accumule les carrés. Départ : s vaut . Puis , , , . S(4) renvoie . S(n) calcule . b) « range(4) » donne k = , , , : on obtient . C'est la somme jusqu'à seulement, soit S(3). c) Pour : . Pour : , et S(10) renvoie bien . ⛔ Le piège de la borne : « range(n) » s'arrête à . Pour aller jusqu'à , on écrit « range(1, n + 1) ». ⚠️ Deux vérifications ne démontrent pas la formule : le programme ne teste qu'un nombre fini de cas. La preuve se fait par récurrence. ⭐ Sur le dessin : la trace de S(4), qui finit sur .k s début 0 1 1 2 5 3 14 4 30 3
La suite est définie par et . On admet que . a) Que renvoie seuil(e), en termes de la suite ? b) Calculer seuil(0.1) à l'aide du logarithme népérien. c) Pourquoi la boucle s'arrête-t-elle, quel que soit e > 0 ?def seuil(e):n = 0u = 10while u - 5 >= e:u = 0.8 * u + 1n = n + 1return nVoir la correction
a) La boucle calcule les termes tant que l'écart reste . Elle renvoie le PREMIER rang tel que . b) équivaut à , soit . La fonction ln est strictement croissante : . On divise par , qui est NÉGATIF : l'inégalité change de sens. . Le premier entier qui convient est : seuil(0.1) renvoie . c) , donc et . L'écart finit par passer sous n'importe quel e > 0 : la condition du while devient fausse. ⛔ Le piège : oublier que et écrire . ⭐ Sur le dessin : les termes descendent vers la droite sans l'atteindre ; au rang , l'écart vaut encore .4
On considère la fonction X ci-dessous. a) Que simule le test « random() < p » ? b) Quelle loi suit le nombre renvoyé par X(5, 0.3) ? Justifier. c) Calculer la probabilité que X(5, 0.3) renvoie , et l'espérance de cette loi.from random import randomdef X(n, p):s = 0for k in range(n):if random() < p:s = s + 1return sVoir la correction
a) random() tombe au hasard dans . Il tombe sous avec la probabilité : le test simule un succès de probabilité . b) La boucle répète fois la même épreuve, et chaque tirage est indépendant des autres. s compte les succès. X(5, 0.3) suit donc la loi binomiale . c) . Cela fait . : en moyenne, sur beaucoup d'appels, X(5, 0.3) renvoie . ⚠️ Un appel renvoie un ENTIER, jamais . L'espérance est une moyenne à long terme. ⚠️ Écrire « random() > p » simulerait l'échec : sa probabilité est . ⭐ Sur le dessin : la loi de X. La plus haute barre est ; vient juste après, avec .5
On considère la fonction : « def termes(N): », puis, en retrait, « L = [1] », « for k in range(N): », « L.append((L[-1] + 6)**0.5) » (en double retrait) et « return L ». a) Quelle suite la liste contient-elle ? b) Combien d'éléments contient termes(3) ? Donner-les, arrondis au millième. c) On admet que la suite converge. Trouver sa limite.Voir la correction
a) L[-1] est le DERNIER élément de la liste. À chaque tour, on ajoute , où est le dernier terme calculé. La liste contient les termes de et . b) termes(3) contient , , et : QUATRE éléments. , , . c) La fonction est continue : la limite vérifie . On élève au carré : , soit . Une racine carrée est positive, donc . ⚠️ termes(N) renvoie termes, de à : la liste commence par . ⭐ Sur le dessin : les termes montent très vite vers la droite .6
Voici une fonction qui teste une liste : « def croissante(L): », puis, en retrait, « for i in range(len(L) - 1): », « if L[i + 1] < L[i]: » (en double retrait), « return False » (en triple retrait), et enfin « return True » (en simple retrait). a) Que renvoient croissante([2, 5, 5, 9]) et croissante([1, 4, 3, 8]) ? b) Combien de comparaisons fait-elle, au plus, sur une liste de éléments ? c) On pose . Que renvoie croissante([10*n - n**2 for n in range(6)]) ? La suite est-elle croissante ?Voir la correction
a) La fonction compare chaque élément au suivant. Elle renvoie False dès qu'elle trouve une descente. [2, 5, 5, 9] : , et sont faux. La boucle va au bout : True. [1, 4, 3, 8] : à i = , est vrai : False, sans regarder la suite. b) i va de à : comparaisons au plus. c) La liste vaut [0, 9, 16, 21, 24, 25] : elle monte, la fonction renvoie True. Mais : la suite n'est PAS croissante. , négatif dès : la suite décroît à partir du rang . ⛔ Le piège : un programme ne regarde qu'un nombre FINI de termes. Il peut réfuter (« False »), jamais démontrer une propriété de toute la suite. ⚠️ « return False » est DANS la boucle : la fonction s'arrête au premier False. « return True » est APRÈS la boucle. ⭐ Sur le dessin : les valeurs montent jusqu'à , puis redescendent à .n 0 1 2 3 4 5 6 u(n) 0 9 16 21 24 25 24 7
La fonction mc tire N points au hasard dans le carré . a) Quand le compteur c augmente-t-il ? Le dire avec la courbe de . b) Vers quel nombre mc(N) se rapproche-t-il quand N est grand ? Le calculer par une intégrale.from random import randomdef mc(N):c = 0for k in range(N):x = random()y = random()if y < x**2:c = c + 1return c / NVoir la correction
a) Le point de coordonnées (x ; y) est pris au hasard dans le carré. c augmente quand , c'est-à-dire quand le point tombe SOUS la parabole. b) mc(N) est la fréquence des points sous la parabole. Pour N grand, elle se rapproche de la probabilité de tomber sous la courbe. Le carré a une aire de : cette probabilité est l'aire sous la courbe. . mc(N) se rapproche de . ⚠️ Deux appels de mc(1000) ne renvoient pas le même nombre : c'est une fréquence, qui fluctue autour de . ⭐ Sur le dessin : la parabole coupe le carré gris en deux ; la partie sous la courbe occupe un tiers du carré.8
On exécute « n = 0 », « s = 0 », puis « while s <= 3: » suivi, en retrait, des deux lignes « n = n + 1 » et « s = s + 1 / n ». On affiche enfin n. a) Que vaut s à la fin de chaque tour ? b) Qu'affiche le programme ? c) Avec « while s <= 10: », le programme s'arrête-t-il ?Voir la correction
a) Au tour , on ajoute : s vaut . b) On calcule : , encore , puis . La boucle s'arrête au premier tel que : le programme affiche . c) Oui. On admet que : la somme dépasse n'importe quel nombre. Mais il faut attendre pour dépasser . ⚠️ Le terme ajouté tend vers , et pourtant la somme tend vers . Des termes qui tendent vers ne suffisent pas à faire une somme finie. ⭐ Sur le dessin : les points montent de moins en moins vite, mais le onzième passe au-dessus de la droite .
Type devoir : exercices 9 à 16niveau 2
Un programme au service d'un chapitre : on le lit, on l'exécute à la main, puis on justifie par le cours.
Rappel de cours
- Dichotomie : si est continue et change de signe sur , on coupe l'intervalle en deux et on garde la moitié où change de signe. Après tours, la longueur est divisée par .
- Rectangles : avec rectangles de largeur , la somme des aires approche . Si est croissante, les rectangles à gauche sont en dessous, ceux à droite au-dessus.
- Euler pour : on avance à petits pas en suivant la tangente, .
- Moyenne de copies indépendantes de : , . Bienaymé-Tchebychev : .
9
Après une prise de médicament, la concentration dans le sang (en mg/L) au bout de heures est modélisée par . Le médicament est efficace tant que . a) Étudier les variations de sur , et montrer que a une unique solution dans cet intervalle. b) Faire la trace de dicho(1, 5, 0.5). Que renvoie cet appel ? Interpréter. c) Combien de tours faut-il pour dicho(1, 5, 0.001) ?from math import expdef C(t):return 10 * t * exp(-t)def dicho(a, b, e):while b - a > e:m = (a + b) / 2if C(m) > 2:a = melse:b = mreturn a, bVoir la correction
a) , négatif pour : est strictement décroissante sur . et . est continue, et est entre ces deux valeurs. D'après le théorème des valeurs intermédiaires (cas strictement monotone), a une unique solution dans . b) Départ : a = , b = . m = : , donc b = . m = : , donc a = . m = : , donc a = . b − a vaut , qui n'est pas : la boucle s'arrête. L'appel renvoie (2.5, 3.0). Donc : le médicament cesse d'être efficace entre h et h après la prise. c) Après tours, la longueur vaut . Il faut , soit . et : il faut tours. ⚠️ Le test « C(m) > 2 : a = m » vient de ce que est DÉCROISSANTE : si , la solution est à droite de m. Pour une fonction croissante, on échangerait a et b. ⭐ Sur le dessin : la trace. Chaque ligne coupe l'intervalle en deux ; la dernière encadre entre et .m C(m) a b — — 1 5 3 1.49 1 3 2 2.71 2 3 2.5 2.05 2.5 3 10
Un robot démarre. Sa vitesse, en m/s, au bout de secondes, est . La distance parcourue entre et s est . a) Que renvoie rect(0, 2, 4) ? Faire le calcul à la main. b) Quelle ligne modifier pour placer les rectangles à droite ? Que renvoie alors l'appel ? c) Calculer la distance exacte, et vérifier l'encadrement. d) Quelle valeur de n garantit un encadrement d'amplitude ?def f(t):return t**2def rect(a, b, n):h = (b - a) / ns = 0for k in range(n):s = s + f(a + k * h)return s * hVoir la correction
a) h = . k va de à : on prend f aux points ; ; ; , c'est-à-dire aux bords GAUCHES. s = , et l'appel renvoie . b) On remplace « f(a + k * h) » par « f(a + (k + 1) * h) » : les bords droits ; ; ; . s = , et l'appel renvoie . c) m. est croissante sur : les rectangles à gauche sont sous la courbe, ceux à droite au-dessus. On a bien . d) Les deux sommes diffèrent de . donne . ⚠️ Avec rectangles, l'écart est énorme ( m). L'encadrement devient précis quand grandit, parce que l'écart est divisé par . ⭐ Sur le dessin : l'escalier orange des rectangles à gauche reste sous la parabole ; son aire, , est trop petite.11
On charge un condensateur. La tension (en volts) à ses bornes vérifie et , le temps étant en secondes. a) Vérifier que est la solution. b) Faire la trace de euler(0.25, 1). Comparer à la valeur exacte . c) Montrer que, pour , la méthode calcule . Vers quoi tendent ces valeurs ?def euler(h, T):t = 0u = 0while t < T:u = u + h*(4 - 2*u)t = t + hreturn uVoir la correction
a) , et : l'équation est vérifiée. Et . D'après le cours, c'est l'unique solution. b) Chaque tour avance de s en suivant la tangente : u reçoit u + . : . : . : . : . L'appel renvoie . Valeur exacte : . L'erreur vaut environ V. c) . C'est une suite arithmético-géométrique, de point fixe , soit . Comme , les valeurs tendent vers : la même limite que quand . ⛔ Le piège des nombres à virgule : avec h = , Python ne stocke pas exactement. Après dix pas, t vaut , et la boucle fait un ONZIÈME tour. ⭐ Sur le dessin : la ligne brisée orange d'Euler part de l'origine avec la pente et passe AU-DESSUS de la courbe bleue.12
Un retraité place €. Chaque année, le capital rapporte %, puis il retire €. On exécute « C = 20000 », « n = 0 », puis « while C > 0: » suivi, en retrait, de « C = 1.02 * C - 2000 » et « n = n + 1 ». On affiche enfin n. a) On note le capital après années. Justifier que . b) On pose . Montrer que est géométrique ; en déduire . c) Déterminer, avec ln, ce qu'affiche le programme. Interpréter.Voir la correction
a) Rapporter %, c'est multiplier par . Puis on retire € : . b) , soit . On factorise : . est géométrique de raison , avec . Donc . c) La boucle s'arrête au premier tel que , soit . ln est croissante, et : . Le programme affiche . On peut faire retraits complets ; la douzième année, le capital ne suffit plus : €, puis €. ⚠️ Ici : l'inégalité garde son sens. Avec une raison entre et , elle changerait de sens. ⭐ Sur le dessin : le capital fond de plus en plus vite, parce que les intérêts diminuent avec lui.n 0 5 10 11 12 C(n) 20000 11674 2480 530 −1459 13
On lance deux dés équilibrés et on note la somme. est le résultat d'un dé : et . a) Que renvoie moyenne(N) ? b) Calculer et . c) On note la valeur renvoyée par moyenne(1000). Donner et , puis majorer .from random import randintdef moyenne(N):t = 0for k in range(N):a = randint(1, 6)b = randint(1, 6)t = t + a + breturn t / NVoir la correction
a) Chaque tour lance deux dés et ajoute leur somme à t. moyenne(N) renvoie la moyenne de sommes de deux dés. b) : . Les deux dés sont INDÉPENDANTS : les variances s'ajoutent. . c) est la moyenne de copies indépendantes de : et . Bienaymé-Tchebychev : . Moins de % des appels s'écartent de d'au moins . ⛔ Le piège : remplacer « a + b » par « 2 * a ». La moyenne ne change pas, mais : deux fois plus que . Lancer deux dés, ce n'est pas doubler un dé. ⭐ Sur le dessin : pour chaque somme, le nombre de cas sur . La loi de est en triangle ; la plus haute barre est , avec cas, soit .14
Une puce part de sur une droite graduée. Chaque seconde, elle saute de ou de , avec la même probabilité, indépendamment. On simule sauts : « x = 0 », puis « for k in range(10): » suivi, en retrait, de « if random() < 0.5: x = x + 1 » et « else: x = x - 1 ». On affiche enfin x. a) Quelles valeurs le programme peut-il afficher ? b) On note le nombre de sauts vers la droite. Donner la loi de , et exprimer x en fonction de . c) Calculer la probabilité que la puce revienne en . d) Calculer l'espérance et la variance de la position finale.Voir la correction
a) Avec sauts à droite et à gauche, x vaut . C'est un nombre PAIR entre et : , , …, , . b) Dix sauts indépendants, chacun « à droite » avec la probabilité : suit . c) x = équivaut à . . d) et . x = : , et . ⚠️ : on multiplie la variance par le CARRÉ de , et le ne change rien. ⚠️ Revenir en est l'issue la plus probable, et pourtant elle n'arrive qu'une fois sur quatre environ. ⭐ Sur le dessin : pour chaque position finale, le nombre de chemins sur . La loi est symétrique autour de , et les positions impaires n'ont pas de barre.15
À un jeu, on lance un dé équilibré jusqu'à obtenir un . La fonction attente simule une partie. a) Que renvoie attente() ? b) On note ce nombre. Justifier que . c) Trouver, avec ln, le plus petit tel que . Interpréter. d) Un élève écrit « d = randint(1, 6) » avant la boucle, puis « while d != 6: ». Que se passe-t-il ?from random import randintdef attente():n = 1while randint(1, 6) != 6:n = n + 1return nVoir la correction
a) Chaque test du while lance un NOUVEAU dé. Tant que ce n'est pas un , n augmente. attente() renvoie le rang du premier . b) signifie : aucun lors des premiers lancers. Les lancers sont indépendants, chacun sans avec la probabilité . Donc . c) équivaut à . : on divise et on retourne l'inégalité. . Le plus petit entier est : dans plus de % des parties, le sort en lancers au plus. d) Le dé n'est lancé qu'une fois. Si d ne vaut pas , d ne change plus : la condition reste vraie, la boucle ne s'arrête JAMAIS. ⛔ Le piège de d) : une boucle while doit modifier ce qu'elle teste. ⚠️ En c), est négatif : l'inégalité change de sens. ⭐ Sur le dessin : les points descendent de vers , divisés par à chaque lancer.16
On place € à un taux annuel de %, avec des intérêts composés fois par an : au bout d'un an, on a €. a) Calculer ce capital pour , et . b) On exécute « s = 1 », « f = 1 », puis « for k in range(1, 9): » suivi, en retrait, de « f = f * k » et « s = s + 1 / f ». Que contient f à la fin du tour k ? Que calcule s ? c) On admet que les deux méthodes approchent . Laquelle est la plus rapide ?Voir la correction
a) : €. : €. : €. b) f est multiplié par k à chaque tour : à la fin du tour k, f vaut . s vaut . c) Avec : , encore à de . La somme s, avec seulement tours, est à de : elle est bien plus rapide. ⚠️ On ne recalcule pas à chaque tour : on garde f et on le multiplie par k. C'est le même geste que pour une suite, . ⭐ Pourquoi ? , qui tend vers : c'est la limite de en . ⭐ Sur le dessin : le capital monte avec n, mais de moins en moins : il plafonne sous .n 1 2 12 365 capital 2 2,25 2,613 2,7146
Problèmes : exercices 17 à 20niveau 3
Un exercice complet de bac : le cours démontre, le programme calcule, et les deux doivent être d'accord.
Rappel de cours
- Un programme ne DÉMONTRE rien : il calcule des valeurs, confirme une conjecture ou trouve un seuil. La preuve vient du cours.
- Avant de lancer une boucle while, s'assurer qu'elle s'arrête : la condition doit finir par devenir fausse.
- Pour une variable aléatoire de loi binomiale, « comb(n, k) » (module math) donne .
17Le café qui refroidit
Un café est servi à °C dans une pièce à °C. Sa température (en °C) au bout de minutes vérifie et . On le boit quand il passe sous °C. a) Vérifier que est la solution. b) Le programme applique la méthode d'Euler de pas h. Montrer que, pour h = , il calcule , puis que . c) Qu'affiche le programme pour h = ? d) Déterminer le temps exact où passe sous °C. Pourquoi Euler annonce-t-il un café buvable trop tôt ? e) Qu'affiche le programme pour h = ?t = 0T = 90h = 1while T >= 40:T = T + h * (2 - 0.1 * T)t = t + hprint(t)Voir la correction
a) , et . Et . b) : la ligne est bien un pas d'Euler. Avec h = , . On pose : , géométrique de raison et . Donc . c) La boucle s'arrête au premier tel que , soit . : . Le programme affiche . d) équivaut à , soit . Donc min. La courbe de est convexe () : elle est au-dessus de ses tangentes. Euler, qui suit les tangentes, descend plus vite que la vraie température. e) Avec h = : , sous dès que . Donc pas de min : le programme affiche , plus près de . ⚠️ Le programme affiche un TEMPS, , pas un nombre de pas : pour h = , pas font min. ⭐ Sur le dessin (une graduation = min et °C) : les points d'Euler sont sous la courbe bleue ; ils passent la droite des °C avant elle.18Le contrôle qualité
Une machine produit des pièces dont % sont défectueuses. On prélève un lot de pièces ; la production est assez grande pour assimiler le prélèvement à des tirages avec remise. est le nombre de pièces défectueuses du lot. a) Quelle est la loi de ? Que renvoie P(k) ? Calculer P(0). b) Que renvoie seuil() ? On donne et . c) Règle de l'usine : si un lot contient plus de seuil() pièces défectueuses, on arrête la machine. Quelle est la probabilité d'arrêter à tort une machine qui fonctionne bien ? d) Calculer et l'écart type de .from math import combdef P(k):a = comb(50, k)b = 0.05**kc = 0.95**(50 - k)return a * b * cdef seuil():k = 0s = P(0)while s < 0.95:k = k + 1s = s + P(k)return kVoir la correction
a) épreuves identiques et indépendantes, chacune « défectueuse » avec la probabilité : suit . P(k) renvoie , c'est-à-dire . P(0) = . b) s cumule , c'est-à-dire . La boucle s'arrête au premier tel que . et : seuil() renvoie . c) On arrête la machine si . Pour une machine qui fonctionne bien : . Environ % des lots feraient arrêter la machine à tort. d) , et . ⚠️ , et non : le contraire de « au moins » est « au plus ». ⚠️ La boucle s'arrête toujours : . ⭐ Sur le dessin : la loi de , en probabilités pour (la barre vaut , soit ). Presque toute la probabilité est entre et ; les barres et sont minuscules.19Une aire sans primitive
La section d'un canal a pour profil la courbe de . On veut l'aire , mais on ne sait pas écrire de primitive de avec les fonctions usuelles. a) Étudier les variations de sur . b) Que calculent g et d dans encadre(n) ? Justifier que . c) Calculer encadre(4), à près. d) Montrer que . Quelle valeur de n garantit une amplitude ?from math import expdef f(x):return exp(-x**2)def encadre(n):h = 1 / ng = 0d = 0for k in range(n):g = g + h * f(k*h)d = d + h * f(k*h + h)return d, gVoir la correction
a) , négatif sur : est décroissante. b) g ajoute les aires des rectangles de hauteur au bord GAUCHE, d celles des rectangles de hauteur au bord DROIT. décroît : sur chaque bande, elle est sous sa valeur de gauche et au-dessus de sa valeur de droite. En sommant : . c) h = . g = , soit g ≈ . d s'obtient en remplaçant par : d ≈ . L'appel renvoie environ (0.664, 0.822). d) Les deux sommes ont les mêmes termes, sauf le premier de g et le dernier de d : . donne : n = suffit. encadre(64) renvoie environ (0.7419, 0.7517) : . ⚠️ Ici DÉCROÎT : ce sont les rectangles à gauche qui sont au-dessus. C'est l'inverse d'une fonction croissante. ⭐ Sur le dessin : les rectangles à gauche (orange) dépassent de la courbe ; leur aire, , majore .20La rumeur au lycée
Une rumeur circule dans un lycée. La proportion d'élèves qui la connaissent au bout de heures est modélisée par et . On note . a) Montrer que est croissante sur , et calculer et . b) Montrer par récurrence que pour tout . c) En déduire que converge, et trouver sa limite. d) Que renvoient jour(0.5) et jour(0.99) ? e) Que se passe-t-il si l'on appelle jour(1) ?def jour(s):n = 0p = 0.01while p < s:p = 1.5*p - 0.5*p*pn = n + 1return nVoir la correction
a) sur : est croissante. et . b) Initialisation : et . On a . Hérédité : si , on applique , croissante sur : . C'est . Les inégalités strictes restent strictes, car est STRICTEMENT croissante. c) est croissante et majorée par : elle converge vers un réel , avec ( est continue). donne : ou . La suite croît à partir de , donc : . Tout le lycée finit par connaître la rumeur. d) jour(s) renvoie le premier tel que . On calcule : et : jour(0.5) renvoie . Puis et : jour(0.99) renvoie . e) D'après b), pour tout : la condition « p < 1 » reste toujours vraie, et la boucle ne s'arrête jamais. ⛔ Le piège de e) : une suite qui TEND vers n'atteint pas forcément . Une boucle de seuil demande un seuil strictement sous la limite. ⚠️ En c), deux valeurs vérifient : c'est la croissance de la suite qui élimine . ⭐ Sur le dessin : la courbe en S. La rumeur démarre lentement, s'emballe vers le rang , puis plafonne sous la droite .