Un tirage à trois issues inégales
Exercice d'entraînement · niveau 2 · mathématiques (ECT 1re année), chapitre 13 — Informatique et algorithmique · Simulation aléatoire
Énoncé
Un client choisit la formule A avec la probabilité , la formule B avec et la formule C avec . En n'utilisant que rd.random(), écrire une fonction formule() qui rend 1, 2 ou 3 selon la formule choisie, puis calculer l'espérance du numéro obtenu.
Corrigé
Le principe. rd.random() rend un nombre au hasard entre et , chaque sous-intervalle ayant une probabilité égale à sa longueur. On découpe donc en trois morceaux de longueurs , et , et l'on regarde dans lequel tombe le tirage.
La fonction.
import numpy.random as rd
def formule():
x = rd.random()
if x < 0.5:
return 1
elif x < 0.8:
return 2
else:
return 3
Pourquoi les seuils sont et . Le premier morceau est , de longueur . Le deuxième va de à : sa longueur vaut bien . Le reste, , a pour longueur . Les seuils sont donc les probabilités cumulées, jamais les probabilités elles-mêmes.
L'ordre des tests. Un elif ne s'évalue que si tous les tests précédents ont échoué : quand on teste x < 0.8, on sait déjà que x >= 0.5. C'est ce qui rend inutile d'écrire la double condition.
L'espérance du numéro. En notant le numéro rendu :
Contrôle. Les trois probabilités somment à , et est bien compris entre le plus petit et le plus grand numéro.
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.