Adloun

sciences numériques et technologie (seconde) · Chapitre 4 · Exercice de TD

La décroissance radioactive

Les boucles · La boucle non bornée : while · niveau 3 (difficile)

Énoncé

Un échantillon contient noyaux radioactifs. À chaque période, la moitié des noyaux restants se désintègre (on arrondira à l'entier inférieur avec //).

  1. Écrire un programme qui affiche le nombre de périodes au bout desquelles il reste moins de noyaux.
  2. Afficher l'évolution période par période.
  3. Que se passerait-il si l'on remplaçait // par / ? Et si le seuil était au lieu de ?

Corrigé

1. et 2.

noyaux = 2000
periodes = 0
while noyaux >= 10:
    noyaux = noyaux // 2
    periodes = periodes + 1
    print("période", periodes, ":", noyaux)
print("Il reste", noyaux, "noyaux après", periodes, "périodes")
période 1 : 1000
période 2 : 500
période 3 : 250
période 4 : 125
période 5 : 62
période 6 : 31
période 7 : 15
période 8 : 7
Il reste 7 noyaux après 8 périodes

3. Avec /, les valeurs deviennent des flottants et ne sont plus des comptages de noyaux : noyau n'a pas de sens physique. La boucle finirait quand même, mais le modèle serait faux.

Avec un seuil de , en revanche, le comportement dépend de l'opérateur, et c'est le point important :

  • avec //, la division entière atteint puis : la boucle s'arrête ;
  • avec /, on obtient , puis , etc. — une suite qui ne vaut jamais zéro. La boucle tournerait des centaines de tours avant que le flottant ne finisse par s'annuler par sous-dépassement, et sur d'autres critères elle ne s'arrêterait jamais.

Une boucle while dont la condition porte sur des flottants est toujours à regarder de près.

100 % gratuit

Essaie le suivant avec le tuteur

Faire l'exercice suivant avec le tuteur

Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →