Accueil / Contact

Bienvenu sur :

logo-mathetpython







ESPACE PRIVE

EXERCICES PREMIERE:SPECIALITE MATH


VARIABLES ALEATOIRES:

Simulation d'un lancé de deux dés à six faces non truqués

En langage Python
from random import randint
def lance_de(n ):
   for i in range (n):
      d1=randint(1,6)
      d2=randint(1,6)
      print(d1,d2)
print(lance_de (4))

1. A quoi sert la fonction randint() ?
2. Que demande t-on d'afficher dans cet algorithme ?
3. On s'intéresse à la somme des nombres obtenus lors du lancé des deux dés.
Quelles lignes doit-on ajouter dans ce programme pour calculer à chaque lancé des deux dés,la somme obtenue?
4.On veut calculer cette fois la moyenne des sommes obtenues .Quelles lignes doit -on rajouter au programme ?.
On donne l’algorithme suivant:
Espérance et variance d'une variable aléatoire discrète
1. On considère une variable aléatoire X prenant n valeurs notée \(x_{k}\) pour k variant de 1 à n dont on connaît la probabilité P(X= \(x_{k}\)):
l'espérance aléatoire de la variable X est notée E(X) et elle est égale à:
\[ \ E(X) =\sum_{k=1}^{n} x_{k}P(X=x_{k}) \]
On donne l'algorithme suivant permettant de calculer l'espérance:
En langage Python
def esperance(L,P,n):
   E=0
   for i in range (n):
     E =E +L[i]*P[i]
   return E

Que réprésentent les paramètres L ,P et n pour la fonction esperance ?
2.Que signifient L[i] et P[i] , et quelles valeurs doivent ils contenir?
3.Si on veut se dispenser de mettre le paramètre n dans l'algorithme que doit-on changer?
3.La variance de la variable X est notée V(X) et elle est égale à :
\[ \ V(X) =\sum_{k=1}^{n} (x_{k} -E(X))² P(X=x_{k}) \]
Ecrire un algorithme qui donne la valeur de la variance de la variable aléatoire X .
4. Si on veut se dispenser de mettre le paramètre n dans l'algorithme que doit-on changer?
Simulation d'un tirage de cartes
Sur une table sont disposées 3 rangées de cartes de couleurs différentes (4 bleues,8 rouges,16 jaunes).Le jeu consiste à retourner une carte successivement par rangée.
il n'y a qu'une carte gagnante par rangée:
figure_carte

Si le joueur tire la carte gagnante à la première rangée il gagne 10 euros.Puis à chaque rangée suivante il gagne 10 euros de plus.
La mise du joueur est de 10 euros.
1.Faire 3 listes notée LB,LR,LJ représentant chacune des rangées
2.Ecrire une Liste nommée T qui donne le résultat du tirage du joueur.
3.Ecrire une fonction nommée gain qui simule l'experience et donne le gain du joueur
4.Ecrire une fonction de paramétre n qui donne le résultat du gain ainsi que les tirages pour n joueurs dans la journée.
Simulation d'un tirage de numéro.
Dans une machine d'un casino, on propose à un joueur après une mise de "m" euros d'appuyer sur un bouton.La machine donne alors un nombre aléatoire entre 1 et n.
Le jeu est le suivant:
si le numéro est un multiple de 3,le joueur gagne 10 euros.
si le numéro est un multiple de 5,le joueur gagne 15 euros.
On donne l'algorithme suivant:
En langage Python
def multiple_3(n):
   m_3=[]
   for i in range (1,n+1):
       if i % 3==0 :
        m_3.append(i)
   return len(m_3)

1.Que signifie i % 3==0 . A quoi sert ce programme?
2.Créer une fonction qui compte les multiples de 5 pour un nombre compris etre 1 et n inclus.
3.Quels sont les différents gains algébriques possibles pour le joueur suivant la valeur de m.?
4.On note G la variable aléatoire,représentant le gain algébrique du joueur.Ecrire une fonction nommée esperance_G qui calcule l'espérance de la variable aléatoire G.
Réponses possibles

Pour accéder aux réponses,Cliquez !
EX1:
Question 1: la fonction randint (n,m) de la bibliothèque random donne un nombre entier aléatoire compris entre n et m (inclus).
Ici randint (1,6) donne un nombre aléatoire entre entre 1 et 6
Question 2: cet algorithme affiche les résultats de 4 lancés de deux dés.
Question 3: un programme possible:
En langage Python
from random import *
def lance_de(n ):
   for i in range (n):
       d1=randint(1,6)
       d2=randint(1,6)
       S=d1+d2
       print((d1,d2),S)

Question 4: un programme possible:
En langage Python
from random import *
def lance_de(n ):
   somme_S = 0
   for i in range (n):
       d1=randint(1,6)
       d2=randint(1,6)
       S=d1+d2
       somme_S= somme_S + S
       print((d1,d2),S)
   return somme_S /n
EX2: Question 1: L et P sont des variables listes pour Python.Elles contiennent n éléments, qui représentent les différents valeurs de la variable aléatoire X ainsi que leur probabilité. respectives.
Question 2: L[i] est la valeur numéro i de la liste des valeurs de la variable aléatoire X.
P[i] est la valeur de la probabilité numéro i de la liste des différentes valeurs des probabilités de la variable aléatoire X.
Attention dans une liste l'indice i commence toujours par 0.
Question 3: On enlève le paramètre n et à la place on change la boucle et on met for i in range (len(L))
len(L) donne la longueur de la liste c'est à dire le nombre d'éléments qu 'elle contient.
En langage Python
def esperance(L,P):
   E=0
   for i in range (len(L)):
     E=E+L[i]*P[i]
   return V
Question 4: un programme possible:
En langage Python
def variance(L,P):
   V=0
   for i in range (len(L)):
     V =V +(L[i]-esperance(L,P))**(2)*P[i]
   return V
EX3:
Question 1: on numérote les boules.Attention range(n,m) numérote de n à m exclus ! donc on rajoute 1 à chaque fois
LB =[i for i in range (1,5)]
LR =[i for i in range (1,9)]
LJ =[i for i in range (1,17)]

Question 2: Question 3: un programme possible:
En langage Python
from random import *
LB=[i for i in range (1,5)]
LR=[i for i in range (1,9)]
LJ=[i for i in range (1,17)]
def gain ():
   gLB=choice(LB)
   gLR =choice (LR)
   gLJ=choice (LJ)
   a=choice(LB)
   b=choice(LR)
   c=choice(LJ)
   T=[a,b,c]
   G=[gLB,gLR,gLJ]
   g =0
      for i in range(1,4):
         if T[i-1]== G[i-1]:
         g=g + 10*(i)
   print(T,G,g)
gain()
Question 4: un programme possible
En langage Python
from random import *
LB=[i for i in range (1,5)]
LR=[i for i in range (1,9)]
LJ=[i for i in range (1,17)]
def gain (n):
   gLB=choice(LB)
   gLR =choice (LR)
   gLJ=choice (LJ)
   a=choice(LB)
   b=choice(LR)
   c=choice(LJ)
   T=[a,b,c]
   G=[gLB,gLR,gLJ]
   g =0
   for k in range (n):
     GT=0
     for i in range(1,4):
       if T[i-1]== G[i-1]:
         g=g + 10*(i)
     GT=g+GT
     print(T ,G ,g-10,)
   print((GT-10*n)/n)
gain(3)
EX4:
Question 1: i%3 donne le reste de la division de i par 3 .
on a crée une variable bouléenne.
Si le reste est nulle on ajoute i dans une liste.Le programme sert à compter le nombre de multiple de 3 d'un nombre compris entre 1 et n.
Question 2: un programme possible:
En langage Python
def multiple_5(n):
   m_5=[]
   for i in range (1,n+1):
       if i % 3==0 :
        m_5.append(i)
   return len(m_5)

Question 3: les différents gains suivant la mise m sont :
-m, 10-m,15-m
Question 4: un programme possible:
En langage Python
def esperance(m,n):
    -m* ( n-(len(m_3)+len(m_5))/n + (10-m)* len(m_3)/n + (15-m)*len(m_5)/n


					
					
logotop