Probabilités

Question 1

  1. Ecrire une fonction en Python simulant le lancer d'un dé cubique équilibré à six faces
  2. Exécuter cette fonction plusieurs fois

Une proposition de réponse :

from random import *
def DeEquilibre():
    return randint(1,6)
>>> DeEquilibre()
5
>>> DeEquilibre()
6
>>> DeEquilibre()
3
>>>

Question 2

  1. Ecrire une fonction en Python simulant le lancer d'un dé cubique équilibré à six faces et renvoie le nombre de lancers jusqu'à l'apparition de la face 6
  2. Exécuter cette fonction plusieurs fois

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *
def DeEquilibre():
	test=0
	c = 0
	while test != 6 :
		test = randint(1,6)
		c = c + 1 
	return c 
>>>DeEquilibre()
3
>>> DeEquilibre()
5
>>> DeEquilibre()
3
>>> 

Question 3

  1. Ecrire une fonction en Python, de paramètre un entier naturel n, simulant n lancers d'un dé cubique équilibré à six faces et renvoie la fréquence de l'apparition de la face 6
  2. Exécuter cette fonction plusieurs fois

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *
def DeEquilibre(n):
    NombreDeSix = 0
    for i in range(n) :
        de = randint(1,6)
        if de == 6 :
            NombreDeSix = NombreDeSix + 1
    return NombreDeSix/n
>>> DeEquilibre(1000)
0,165
>>> DeEquilibre(1000)
0,164
>>> DeEquilibre(1000)
0,179
>>> DeEquilibre(1000)
0,167
>>> 

Question 4

  1. Ecrire une fonction en Python, de paramètre un entier naturel non nul, simulant n lancers d'un dé cubique équilibré à six faces et renvoie la liste des résultats obtenus.
  2. Exécuter cette fonction plusieurs fois.

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *
def DeEquilibre(n):
	liste=[]
	for i in range(n):
		liste.append(randint(1,6))
	return liste
>>> DeEquilibre(10)
[2, 4, 6, 4, 5, 4, 5, 1, 3, 1]
>>> DeEquilibre(15)
[4, 5, 5, 5, 1, 4, 5, 6, 4, 1, 4, 1, 6, 6, 3]
>>> DeEquilibre(20)
[5, 2, 1, 6, 4, 3, 6, 6, 3, 4, 2, 5, 6, 3, 4, 5, 5, 3, 4, 1]
>>>

Question 5

  1. Ecrire une fonction en Python, de paramètre un entier naturel non nul, simulant n lancers d'un dé cubique équilibré à six faces et renvoie la liste des effectifs de chacun des résultats.
  2. Exécuter cette fonction plusieurs fois.

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *
def liste_effectifs(nb_tirages) :
    liste_effectifs = [0, 0, 0, 0, 0, 0]
    for i in range (nb_tirages):
        de = randint (1, 6)
        liste_effectifs[de-1] = liste_effectifs[de-1]+ 1
    return liste_effectifs
>>> liste_effectifs(1000)
[164, 168, 147, 196, 181, 144]
>>> liste_effectifs(1000)
[162, 176, 175, 172, 158, 157]
>>> liste_effectifs(1000)
[175, 157, 155, 158, 185, 170]
>>>

Question 6

On considère le jeu suivant :

On lance simultanément deux dés cubiques équilibrés à six faces. On gagne 5 euros si on obtient les mêmes résulats et on perd 1 euro dans le cas contraire.

  1. Ecrire une fonction en Python, de paramètre un entier naturel non nul n, simulant n lancers des deux dés et affiche le gain moyen.
  2. Exécuter cette fonction pour des valeurs de plus en plus grandes de n.
  3. Que peut-on dire du gain moyen ?

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *
def GainMoyen(n) :
    gain=0
    for i in range(n):
        de1 = randint (1, 6)
        de2 = randint (1, 6)
        if de1==de2: gain=gain+5
        else : gain=gain-1
    return gain/n
>>> GainMoyen(100)
0.26
>>> GainMoyen(1000)
-0.094
>>> GainMoyen(10000)
0.0488
>>> GainMoyen(100000)
0.01688
>>> GainMoyen(1000000)
0.001346
>>>

Remarque

Avant de faire cette question regardez ce cours.

Question 7

  1. Ecrire une fonction en Python, de paramètre un entier naturel non nul, simulant n lancers d'un dé cubique équilibré et affiche le diagramme en barres des résultats obtenus.
  2. Exécuter cette fonction plusieurs fois

Une proposition de réponse :

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from random import *
def frequenceFacesDe(nb_tirages) :
    plt.grid ( True )
    plt.xlabel (" Faces du dé")
    plt.ylabel (" Effectifs ")
    effectif = 0
    plt.title (" Nombre de lancers = "+str( nb_tirages ))
    liste_faces = [1, 2, 3, 4, 5, 6]
    liste_effectifs = [0, 0, 0, 0, 0, 0]
    for i in range (nb_tirages):
        de = randint (1, 6)
        liste_effectifs[de-1] = liste_effectifs[de-1] + 1
    plt.bar( liste_faces , liste_effectifs)
    plt.show ()
frequenceFacesDe(1000)
Diagramme_Barre