chapeau.py

Created by ph-moutou

Created on May 07, 2018

1.07 KB

Jeu du chapeau : les E élèves d’une classe ont décidé de fabriquer E-1 étiquettes « perdu » et une étiquette « gagné ». Les étiquettes étant indiscernables sont mises dans un chapeau. Chacun met 1 € sur la table pour constituer une cagnotte et ensuite, à tour de rôle, selon un ordre fixé d’avance et en payant 2 € pour jouer, chaque élève retire une des étiquettes du chapeau et l’y remet après avoir lu, jusqu’à ce que l’un d’eux tire l’étiquette « gagné ». Aucun élève ne passe son tour et si nécessaire on fait un tour supplémentaire. Quelle somme est gagnée en moyenne? Quel est le rang moyen du gagnant? Le programme ci-dessous simule N fois ce jeu et donne une réponse d’autant plus fiable que N est grand.


from random import randint
def chap1(N):#ne tient pas compte des sommes engagees
  E,T,G=40,0,0
  for I in range(N):
    R,J,S=E,0,E
    while R>1:
      R=randint(1,E)
      S=S+2
      J+=1
    T+=S
    G+=((J-1)%E+1)
  print("moyenne des gains=",T/N)
  print("rang moyen du gagnant=",G/N)
 
def chap2(N):#tient compte des sommes M engagees
  E,T,G=40,0,0
  for I in range(N):
    R,J,S,M=E,0,E,1
    while R>1:
      R=randint(1,E)
      S=S+2
      J+=1
    T+=S-2*((J-1)//E+1)
    G+=((J-1)%E+1)
  print("moyenne des gains=",T/N)
  print("rang moyen du gagnant=",G/N) 
  
def chapeau(N):#determine le rang le plus frequent du gagnant
  E,T,G=40,0,0
  L=E*[0] #liste contenant l'effectif des gagnants au rang J
  for I in range(N):
    R,J,S,M=E,0,E,1
    while R>1:
      R=randint(1,E)
      S=S+2
      J+=1
    T+=S-2*((J-1)//E+1)#gain algebrique
    G+=((J-1)%E+1)
    L[(J-1)%E]+=1 #incremente l'effectif des gagnants du rang J
  print("moyenne des gains=",T/N)
  print("rang moyen du gagnant=",G/N) 
  print("rang le plus frequent du gagnant=",L.index(max(L))+1)
  print(L)

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.