Deux pièges de syntaxe
Exercice supplémentaire · niveau 1 (application) · mathématiques (ECT 2e année), chapitre 12 — Informatique et travaux pratiques · Simulation de lois
Énoncé
1. Quelles valeurs rd.randint(1, 7) peut-il rendre ? 2. Quelle loi rd.exponential(2) simule-t-il ? 3. Un étudiant veut simuler un dé à six faces et une loi exponentielle de paramètre ; il écrit rd.randint(1, 6) et rd.exponential(0.25). Corriger.
Corrigé
1. La borne haute est exclue. rd.randint(a, b) rend un entier uniforme de . Donc rd.randint(1, 7) rend un entier de : c'est exactement un dé à six faces.
2. C'est la moyenne qui est attendue. rd.exponential prend en argument l'espérance , et non le paramètre . Donc rd.exponential(2) simule la loi exponentielle de paramètre dont l'espérance vaut .
3. Les deux corrections.
rd.randint(1, 6)ne rend que : la face ne sort jamais. Il faut écrirerd.randint(1, 7).rd.exponential(0.25)simule une loi de moyenne , donc de paramètre — seize fois trop grand. Il faut écrirerd.exponential(1 / 0.25), c'est-à-direrd.exponential(4).
Comment s'en apercevoir. En simulant un grand échantillon et en comparant sa moyenne à la valeur attendue. Un dé sans le donne une moyenne voisine de au lieu de ; une exponentielle de paramètre au lieu de donne une moyenne de au lieu de . L'erreur est alors flagrante.
La leçon. Ce sont les deux erreurs les plus fréquentes du thème, et aucune ne provoque de message d'erreur : le programme tourne, et il simule la mauvaise loi.
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.