Un peu de probabilités avec Python

publicité
POIRET Aurélien
Séance No 6
MPSI
FFF
Un peu de probabilités avec Python
Partie No 1 : Simulation des lois usuelles
La fonction random(), de la bibliothèque random, retourne un nombre aléatoire entre 0 (inclus) et 1
(exclus).
1. Écrire une fonction bernoulli(p) simulant la loi de Bernoulli de paramètre p ∈]0, 1[.
2. Écrire une fonction binomiale(n,p) simulant la loi binomiale de paramètres n et p.
3. Écrire une fonction uniforme(N) simulant la loi uniforme sur {1, · · · , N }.
4. Soient E = {e1 , · · · , en } un ensemble fini de cardinal n ∈ N? et (p1 , · · · , pn ) un n-uplet de
nombres réels positifs vérifiant p1 + · · · + pn = 1.
On considère la probabilité
P : P(E) → [0,
P 1]
(ei )i∈I 7→
i∈I pi
Écrire une fonction loi(E,P) qui prend en entrée les listes E=[e_1,...,e_n] et P=[p_1,...,p_n]
et simule une variable aléatoire de loi égale à P.
Partie No 2 : Situations concrètes
1. (a) Écrire une fonction qui simule le lancer d’une pièce équilibrée, en rendant ’P’ pour « Pile »
et ’F’ pour « face ».
(b) Même question avec une pièce truquée.
(c) Écrire une fonction qui simule n lancers indépendants d’une pièce truquée avec probabilité
p d’obtenir « face » , et rend la proportion de « face » .
2. (a) Effectuer 100 tirages d’une pièce avec « probabilité uniforme ».
(b) Écrire une fonction qui prend en entrée une valeur n et retourne une matrice de taille 2 × n
et simulant n lancés de deux dés.
(c) Écrire une fonction qui prend en entrée une matrice 2×n et dénombre le nombre de « double
six ». De même pour un « cinq et six ».
(d) Écrire deux fonctions qui prennent en entrée un nombre de tirages et rendent la proportion
de « double six » et de « cinq et six ». Essayer avec différentes valeurs et commenter.
3. On propose une simulation du célèbre problème du Monty Hall. On se limite à la version à trois
portes, la porte gagnante étant numérotée 1 et les deux autres 2 et 3.
(a) Écrire une fonction qui retourne 1, 2 ou 3 avec « probabilité uniforme ».
(b) Écrire une fonction qui, étant donné n ∈ {1, 2, 3} rend 2 ou 3 avec probabilité uniforme si
n = 1 et l’autre valeur de {2, 3} sinon. Que modélise cette fonction ?
(c) Écrire deux fonctions qui testent les deux stratégies de jeux (conserver son choix ou le
changer systématiquement), avec comme paramètre d’entrée le nombre de participations.
Partie No 3 : Loi des grands nombres
La loi forte des grand nombres dit la chose suivante :
1
Théorème 1 : Loi forte des grands nombres
Si (Xn ) est une suite
de variables aléatoires mutuellement indépendantes et suivant la même loi alors
n
la suite X1 +···+X
converge, presque surement, vers E(X1 ).
n
Au sens où
X1 + · · · + Xn
P
lim
= E(X1 ) = 1.
n→+∞
n
Ce théorème est assez difficile à démontrer et on propose de l’utiliser pour calculer numériquement les
espérances des exemples qui suivent.
1. Problème de la ruine du joueur
Soient 0 <ini<fin deux entiers naturels.
On considère un joueur possédant un capital de départ égal à ini euros.
Le joueur lance une pièce équilibrée, si c’est face qui tombe, le joueur perd 1 euros, et, si c’est
pile qui tombe le joueur gagne 1 euros.
Le joueur continue à jouer ainsi de suite jusqu’à obtenir 0 euros (et dans ce cas la partie est
perdu) ou jusqu’à obtenir fin euros (et dans ce cas la partie est gagnée).
(a) Écrire une fonction ruine_joueur(ini,fin) qui simule l’expérience précédente et retourne
le capital du joueur à l’issue de la partie.
(b) A l’aide de la loi forte des grands nombres, donner une estimation de l’espérance du capital
du joueur à l’issue de la partie (on pourra choisir ini=10 et fin∈ {15, 20, 30}.
Remarque importante : La partie pouvant parfois mettre beaucoup de temps à se terminer,
il pourra être judicieux de mettre de côté les parties durant trop longtemps...
(c) Justifier l’appellation « Ruine du joueur »
2. Marche aléatoire sur Z
On considère Pacman qui se déplace sur une droite graduée d’entiers relatifs.
A l’instant initial, Pacman se situe en 0.
A l’instant n, Pacman peut se déplacer d’un cran à droite avec probabilité égale
à gauche avec probabilité égale 12 .
1
2
ou d’un cran
(a) Écrire une fonction marche_aleatoire() qui simule l’expérience précédente et retourne le
temps de retour en 0 de Pacman.
(b) A l’aide de la loi forte des grands nombres, donner une estimation de l’espérance du temps
de retour en 0 de Pacman.
Remarque importante : Pacman pouvant mettre du temps à revenir en 0 1 , il pourra être
judicieux de mettre de côté les expériences durant trop longtemps...
3. Paradoxe de Parrondo
Le paradoxe de Parrondo est un paradoxe de la théorie des jeux qui est bien souvent décrit
comme « une stratégie qui gagne avec des jeux perdants ».
On considère deux jeux A et B perdants. Nous allons fabriquer un jeu AB gagnant.
(a) Le jeu A.
A est un jeu de pile ou face avec une pièce baisée (pile avec une probabilité de p =
On lance la pièce. Si on obtient pile, on gagne un euro, sinon on perd un euro.
1
2
− )
i. Écrire une fonction jeu_A(eps) qui simule une expérience du jeu A.
ii. Écire une fonction gain_jeu_A(eps,k) qui retourne le gain du joueur à l’issue de k-jeux
A successifs avec un capital de départ égal à 0 euros.
1. C’est assez difficile mais on peut montrer que, presque surement, Pacman reviendra en 0 en temps fini. Votre
enseignant de mathématiques est passionné par ce résultat et je suis sûr qu’il vous en a déjà parlé.
2
iii. On prend k = 1000 et = 0.0001. A l’aide de la loi forte des grands nombres, donner
une estimation de l’espérance du capital du joueur à l’issue de k-jeux A successifs avec
un capital de départ égal à 0 euros.
En déduire que A est bien un jeu perdant.
(b) Le jeu B.
1
B est un jeu avec deux pièces biaisées. La pièce 1 donne pile avec une probabilité p1 = 10
−
3
et la pièce 2 donne pile avec une probabilité p2 = 4 − . Si le joueur a un capital K euros
qui est un multiple de 3, on lance la pièce 1, sinon on lance la pièce 2. Comme dans le jeu
A, si on obtient pile, on gagne un euros, sinon on perd un euro.
i. Écrire une fonction jeu_B(eps,K) qui simule une expérience du jeu B avec un capital
de K euros.
ii. Écire une fonction gain_jeu_B(eps,k) qui retourne le gain du joueur à l’issue de k-jeux
B successifs avec un capital de départ égal à 0 euros.
iii. On prend k = 1000 et = 0.0001. A l’aide de la loi forte des grands nombres, donner
une estimation de l’espérance du capital du joueur à l’issue de k-jeux B successifs avec
un capital de départ égal à 0 euros.
En déduire que B est bien un jeu perdant.
(c) Le jeu AB. AB est un jeu avec une pièce équilibrée. On lance la pièce. Si on obtient pile,
on joue à A, sinon on joue à B.
i. Écrire une fonction jeu_AB(eps,K) qui simule une expérience du jeu AB avec un capital
de K euros.
ii. Écire une fonction gain_jeu_AB(eps,k) qui retourne le gain du joueur à l’issue de k-jeux
AB successifs avec un capital de départ égal à 0 euros.
iii. On prend k = 1000 et = 0.0001. A l’aide de la loi forte des grands nombres, donner
une estimation de l’espérance du capital du joueur à l’issue de k-jeux AB successifs avec
un capital de départ égal à 0 euros.
En déduire que AB est bien un jeu gagnant.
3
Téléchargement