Activité

Intervalle de fluctuation

Une urne contient des boules jaunes et des boules bleues. Les boules sont indiscernables au toucher. L'urne contient 20% des boules jaunes.

On extrait au hasard une boules. On note sa couleur, puis on la remet dans l'urne.

Le but de cette activité est d'étudier la fréquence d'apparition de la couleur jaune lorsque l'on procède à 100 tirages.

Remarque

On ne connaît pas le nombre de boules de l'urne. Mais l'expérience revient à simuler un tirage au sort dans une urne contenant 100 boules, dont 20 boules jaunes.

On attribue les nombres 1 à 20 aux boules jaunes, ce qui correspond bien à une proportion de 20%.

Question 1

Ecrire une fonction en Python qui simule le tirage d'une boule et renvoie le résutat en précisant si la boule est jaune ou bleue

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *
def TirageBoule():
        tirage=randint(1,100)
        if tirage <=20:
            return "La boule tirée est jaune"
        else :
            return "La boule tirée est bleue"
>>> TirageBoule()
'La boule tirée est bleue'
>>> TirageBoule()
'La boule tirée est bleue'
>>> TirageBoule()
'La boule tirée est bleue'
>>> TirageBoule()
'La boule tirée est jaune'
>>>

Question 2

  1. Ecrire une fonction en Python, de paramètre un entier naturel n, qui simule n tirage d'une boule et renvoie la fréquence d'apparition d'une boule jaune
  2. Répéter cette simulation plusieurs fois. Comment évolue la fréquence d'apparition de la couleur jaune ?

Une proposition de réponse :

# -*- coding: utf-8 -*-
from random import *

def frequenceBJ(n):
    boulesJaunes = 0
    for i in range(n):
        tirage=randint(1,100)
        if tirage <=20:
            boulesJaunes=boulesJaunes+1
    return boulesJaunes/n
>>> frequenceBJ(100)
0.2
>>> frequenceBJ(100)
0.26
>>> frequenceBJ(100)
0.32
>>>

Question 3

Avant de faire cette question regardez ce cours.

  1. Exécuter ce script. Quel est son rôle ?
    1. # -*- coding: utf-8 -*-
      from random import *
      from math import *
      import matplotlib.pyplot as plt
      
      def nuagePoints(tailleEchantillon,nb_echantillons) :
          plt.xlabel('Nombre d\'échantillons')
          plt.ylabel('nuage de fréquences' )
          plt.plot([0,nb_echantillons],[0.2-1/sqrt(tailleEchantillon),\
                  0.2-1/sqrt(tailleEchantillon)],'g-')
          plt.plot([0,nb_echantillons],[0.2+1/sqrt(tailleEchantillon),\
                  0.2+1/sqrt(tailleEchantillon)],'g-')
          for i in range(nb_echantillons) :
              s = frequenceBJ(tailleEchantillon)
              plt.plot(i,s,'r.')
          plt.show()

Une proposition de réponse :

Le but de ce script est d'afficher le nuage des fréquences d'apparition d'une boule jaune

>>> nuagePoints(100,50)
>>>

On obtient le nuage des fréquences suivant :

Nuage de fréquences