cette question s'inspire d'un jeu de société pour enfant
Le jeu est composé de :
- quatre figurines d'animaux « de la banquise » (un lapin, un ours polaire, un pingouin et un loup).
- trois plateaux en carton représentant une banquise en train de fondre, un pont de glace, et une banquise refuge contenant un igloo,
-6 piliers de glace,
- un dé à six faces ayant trois résultats équiprobables: 2 faces "pont", 2 faces "igloo" et 2 faces "glaçon".
Les quatres animaux sont initialement placés sur la banquise qui fond.
À son tour, le joueur lance le dé et effectue l'action dictée par le dé:
- en cas de glaçon, on retire un pilier du pont. Quand le pont n'a plus aucun pilier, le jeu est perdu (rappelons qu'au départ, il y a 6 piliers).
- en cas de pont, on déplace un animal de la banquise vers le pont (et on ne fait rien s'il n'y a personne sur la banquise).
- en cas d'igloo, on déplace un animal du pont vers l'igloo, et on ne fait rien si le pont est vide. Si tous les animaux sont sur l'igloo, la partie est gagnée.
La question est : comment calculer la probabilité de gagner à ce jeu ?
J'ai fait un programme vite fait et je trouve 47% environ. Mais comment calculer théoriquement cette probabilité ?
- Code: Tout sélectionner
import random
def partie():
# 1-2 ---> écroulement du pont
# 3-4 ---> passage du pont vers ile d'arrivée
# 5-6 ---> passage île de départ vers pont
nb_animaux_ile_depart = 4
nb_animaux_ponts = 0
nb_animaux_ile_arrivee = 0
glaces_ponts = 6
while nb_animaux_ile_arrivee !=4 and glaces_ponts !=0:
de = random.randint(1,6)
if de in [1,2]:
glaces_ponts -= 1
elif de in [3,4]:
if nb_animaux_ponts > 0:
nb_animaux_ponts -= 1
nb_animaux_ile_arrivee += 1
elif de in [5,6]:
if nb_animaux_ile_depart > 0:
nb_animaux_ile_depart -= 1
nb_animaux_ponts += 1
if nb_animaux_ile_arrivee == 4:
return "gagné"
else:
return "perdu"
def proba_gagner(n):
compteur = 0
for i in range(n):
ma_partie = partie()
if ma_partie== "gagné":
compteur += 1
return compteur / n