je n'ai pas de listes de programmes comme la dernière fois mais tu peux en construire assez facilement à partir du moment où tu connais le modèle probabiliste.
Je te donne un exemple pour le tirage avec remise : supposons que l'on ait dans une urne une proportion \(p\) d'une certaine catégorie, et que l'on tire \(n\) boules dans l'urne avec remise, on peut alors compter le nombre de succès : il s'agit du modèle binomial.
On peut donc simuler ce modèle en créant d'abord une fonction tirage qui va simuler cette expérience aléatoire et renvoyer le nombre de succès obtenus après la répétition des \(n\) tirages.
Si l'on veut estimer la probabilités de \(k\) succès, il faut alors générer un échantillon de grande taille des simulations précédentes puis calculer la fréquence des tirages à \(k\) succès :
Code : Tout sélectionner
import random
def tirage_avec_remise(n,p):
"""simule n tirage(s) avec remise dans une urne contenant une proportion p de boules d'une certaine catégorie et renvoie le nombre de succès"""
random.seed() # réinitialise le générateur de nombres aléatoires
succes = 0
tirage = 0
for i in range(n):
tirage = random.random()
if tirage <= p:
succes = succes + 1
return succes
def simul_remise_binomial(k,n,p, taille_echantillon):
"""génère un échantillon de plusieurs tirages et renvoie la fréquence des tirages à k succès"""
compteur = 0
for i in range(taille_echantillon):
if tirage_avec_remise(n,p) == k:
compteur = compteur + 1
return compteur/taille_echantillon
Par exemple si l'on cherche la probabilité de \(k\) succès pour 50 répétitions avec une probabilité de succès de 0,2, avec une simulation à 100000 tirages , on a par exemple :
Code : Tout sélectionner
>>>simul_remise_binomial(15,50,0.2,100000)
0.02914
Si tu veux essayer, voici le programme en ligne :
https://repl.it/@rnivelle/simulationtirages#main.py
Bonne continuation