On importe la bibliothèque numpy.random à l’aide de la commande
import numpy.random as rd
La fonction rd.randint permet de choisir un nombre uniformément au hasard dans une liste prédéterminée.
On considère deux entiers relatifs \( a \) et \( b \) tels que \( a<b \).
On peut également choisir plusieurs nombres simultanément et indépendamment les uns des autres.
On considère des entiers naturels non nuls \( n \) et \( p \).
La fonction rd.random permet de choisir un nombre uniformément au hasard dans \( [0,1 ] \) ; autrement dit rd.random peut simuler une variable aléatoire de loi uniforme sur \( [ 0,1 ] \).
Ainsi, pour simuler la réalisation d’un événement \( E \) de probabilité \( p \), on pourra utiliser par exemple comparer une valeur prise par rd.random() avec p et considérer que l’événement \( E \) est réalisé si rd.random()<p et ne l’est pas sinon.
On peut également choisir plusieurs nombres simultanément et indépendamment les uns des autres.
On considère des entiers naturels non nuls \( n \) et \( p \).
Soit \( n,a,b \) des entiers naturel non nuls et \( p \) un élément de \( ]0,1[ \).
Soit \( n,m \) des entiers naturel non nuls et \( p \) un élément de \( ]0,1[ \).
Soit \( n,m \) des entiers naturel non nuls et \( L \) un réel strictement positif.
Soit \( r,b,n \) des entiers naturels non nuls.
On dispose d’une urne contenant \( r+b+n \) boules, dont \( r \) sont rouges, \( b \) sont bleues et \( n \) sont noires. Pour simuler le tirage d’une boule au hasard dans cette urne avec Python, on peut utiliser la fonction suivante :
import numpy.random as rd
def Tirage(r,b,n):
T=rd.randint(r+b+n)
if T<r:
return 'Rouge'
elif T<r+b:
return 'Bleue'
else:
return 'Noire'
À l’appel de cette fonction, le programme choisit un nombre au hasard dans \( \{ 0,1,\dots,r+b+n \} \) et on considère que :
Soit \( r,b,n \) des éléments de \( ]0,1[ \) tels que \( r+b+n = 1 \).
On dispose d’une urne contenant des boules, dont une proportion \( r \) de rouges, \( b \) de bleues et \( n \) de noires. Pour simuler le tirage d’une boule au hasard dans cette urne avec Python, on peut utiliser la fonction suivante :
import numpy.random as rd
def Tirage(r,b,n):
T=rd.random()
if T<r:
return 'Rouge'
elif T<r+b:
return 'Bleue'
else:
return 'Noire'
À l’appel de cette fonction, le programme choisit un nombre au hasard dans \( [0,1] \) et on considère que :
En effet, quand on choisit un nombre uniformément au hasard dans \( [0,1] \), la probabilité que ce nombre appartienne à un intervalle \( [a,b] \) (ou \( ]a,b] \), \( [a,b[ \), \( ]a,b [ \)) inclus dans \( [0,1] \) est égale à la longueur \( b-a \) de cet intervalle.
Soit \( p \) un réel appartenant à \( ]0,1[ \). Pour simuler le lancer d’une pièce donnant pile avec probabilité \( p \) et face avec probabilité \( 1-p \), on peut utiliser la fonction Python suivante :
import numpy.random as rd
def Lancer(p):
if rd.random()<p:
return 'Pile'
else:
return 'Face'
Soit \( p \) un réel appartenant à \( ]0,1[ \) et \( n \) un entier naturel non nul. On effectue une suite de \( n \) lancers d’une pièce donnant pile avec probabilité \( p \) et face avec probabilité \( 1-p \) et on note \( X \) la variable aléatoire égale au nombre de piles obtenus.
Pour modéliser cette expérience et renvoyer la valeur prise par \( X\) avec Python, deux possibilités s’offrent à nous.
On peut d’une part utiliser le modèle et simuler la suite de \( n \) lancers de pièce à l’aide d’une boucle for, en ajoutant 1 à la variable X à chaque fois que l’on obtient pile (ce que l’on peut simuler avec rd.random()<p conformément au point précédent) :
import numpy.random as rd
def Simul(n,p):
X=0
for k in range(n):
if rd.random()<p:
X=X+1
return X
On peut d’autre part remarquer que la variable aléatoire \( X \) suit la loi binomiale \( \mathcal{B}(n,p) \) et par conséquent proposer la fonction suivante :
import numpy.random as rd
def Simul(n,p):
return rd.binomial(n,p)
Soit \( p \) un réel appartenant à \( ]0,1[ \). On effectue une suite de lancers d’une pièce donnant pile avec probabilité \( p \) et on note \( X \) la variable aléatoire égale au rang d’apparition du premier pile.
Pour modéliser cette expérience et renvoyer la valeur prise par \( X\) avec Python, deux possibilités s’offrent à nous.
On peut d’une part utiliser le modèle et simuler la suite de lancers de pièce jusqu’à l’obtention d’un pile à l’aide d’une boucle while, en ajoutant 1 à la variable X à chaque fois que l’on obtient pile (ce que l’on peut simuler avec rd.random()<p conformément au point précédent) :
import numpy.random as rd
def Simul(p):
X=1
while rd.random()<p:
X=X+1
return X
On peut d’autre part remarquer que la variable aléatoire \( X \) suit la loi géométrique \( \mathcal{G}(p) \) et par conséquent proposer la fonction suivante :
import numpy.random as rd
def Simul(p):
return rd.geometric(p)