"""
Exercice d'algorithmique : planche 7
"""
#question 1
import random as rd
def lancer(n):
a=rd.randint(1,n)
b=rd.randint(1,n)
return (a,b)
"""
la fonction lancer itérée plusieurs fois conduit au tirage de deux numéros identiques
au bout de 4 lancers (ce nombre varie évidemment)
"""
#question 2
def rang(n):
a,b=lancer(n)
k=1
while a!=b:
a,b=lancer(n)
k+=1
return k
#question 3
N=1000 #on change la valeur de N pour avoir le résultat après 10 000 exécutions
s=0
for i in range(N):
s+=rang(6)
moy=s/float(N)
print(moy)
"""
On s'aperçoit que le résultat est proche de 6.
C'est logique, car le rang est une variable aléatoire suivant une loi géométrique
de paramètre 1/6. Son espérance est donc égale à 6.
1/6 est la probabilité de succès :
avoir 2 nombres identiques = 6 possibilités / 36 possibilités de couples (a,b)
"""
#question 4
def rang2(n):
a,b=lancer(n)
k=1
while a+b<10:
a,b=lancer(n)
k+=1
return k
"""
Pour estimer la probabilité p d'avoir a+b>=10, on peut procéder comme précédemment
en calculant expérimentalement l'espérance de rang2.
S'agissant d'une variable aléatoire correspondant à un temps d'attente, elle suit une
loi géométrique de paramètre p la probabilité du succès.
L'espérance vaut 1/p. Le calcul de l'espérance donne p.