Poster une réponse 
TP6 : Simulation d'échantillons
25-04-2020, 04:30 PM
Message : #1
TP6 : Simulation d'échantillons
On lance 10 fois un dé non truqué
et on s'intéresse à l'apparition d'un SIX

On voudrait connaître les probabilités d'obtenir 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ou 10 SIX

Pour cela, on simule des échantillons de taille 10
avec la loi de Bernoulli de paramètre 1/6



Principe de la simulation

L'instruction randint(1,6) génère un nombre aléatoire entier entre 1 et 6

arrow pour utiliser cette instruction, il faut importer le module random
A la première ligne, on écrira
from random import *

Ecriture d'une fonction échantillon

La fonction échantillon() renvoie le nombre de SIX obtenu dans un échantillon de taille 10

arrow Pour compter le nombre de SIX, on va générer 10 fois un nombre aléatoire entre 1 et 6
Pour cela, on va utiliser une boucle
for i in range(10) :

A chaque passage dans la boucle, on va générer un nombre aléatoire entre 1 et 6 et tester si ce nombre est égal à 6

Si le nombre est égal à 6, on va ajouter 1 à un compteur
(Ce compteur est une variable qui démarre à 0)

flecherouge écrire la fonction échantillon
[Image: simul1.png]

flecherouge tester la fonction échantillon dans la console
en écrivant échantillon() (essayer plusieurs fois de suite)

Simulation de N échantillons de taille 10

La fonction simulation(N) renvoie la fréquence de SIX obtenue dans N échantillons de taille 10

On va répéter la fonction échantillon N fois
Pour cela, on va utiliser encore une boucle
for i in range(N) :

On utilise une liste L formée de 11 éléments
Au départ, la liste ne contient que des 0
Cette liste contiendra, à la fin de la boucle, le nombre de six obtenus dans les N échantillons
Pour cela, à chaque passage dans la boucle, on ajoute 1 à l'élément de la liste qui correspond au nombre de 6 obtenu dans l'échantillon
(le premier élément se note L[0], ... , le onzième élément se note L[10])

flecherouge Ecrire la fonction simulation
[Image: simul2.png]
flecherouge tester la fonction simulation dans la console
en écrivant simulation(10), puis simulation(100), puis...

Pour obtenir les fréquences, il faut diviser les 11 nombres de la liste par N
Pour cela, on rajoute une autre boucle
[Image: simul3.png]
flecherouge tester la fonction simulation dans la console
en écrivant simulation(10), puis simulation(100), puis...



Voilà tout ce que vous devez écrire
[Image: simul4.png]

Remarque : on peut "raccourcir" l'écriture ainsi :
[Image: simul5.png]



Remarque
Si on veut utiliser des échantillons de taille n (avec n pas forcément égal à 10)
il fallait écrire la fonction échantillon avec le paramètre n
et la fonction simulation avec 2 paramètres N et n
[Image: simul6.png]
(l'instruction L.append(0) rajoute un 0 à la liste L)

[Image: 118.gif]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
Poster une réponse