Advertisement
kilarn123

medic.py

Jan 28th, 2020
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.61 KB | None | 0 0
  1. #medic.py
  2.  
  3. import random
  4. from itertools import islice
  5.  
  6. #retourne: un médicament au hasard parmis ma, mb et mc
  7. def gen_medicament():
  8.     medics = ("ma","mb","mc")
  9.     return random.choice(medics)
  10.  
  11. #parametre: un médicament
  12. #retourne: si le médicament soigne le patient ou pas
  13. # ma à 98% de chance de réussite
  14. # mb à 96% de chance de réussite
  15. # mc à 95% de chance de réussite
  16. # (en gros) si "ma" est donné en parametre ca a 98% de chance de renvoyer true et 2% de false
  17. def est_soigne(medic):
  18.     r = random.random()
  19.     tx_reussite = {"ma": .98, 'mb': .96, 'mc': .95}
  20.     return r <= tx_reussite[medic]
  21.  
  22. #execute le test: prend un médicament au hasard et le teste
  23. #retourne true ou false
  24. def test():
  25.     m = gen_medicament()
  26.     return est_soigne(m)
  27.  
  28. #premier test
  29. #execute 10000 test et retourne le nombre de true et de false
  30. def prog1():   
  31.     print("Début du programme !")
  32.     cptTrue = 0
  33.     cptFalse = 0
  34.     for i in range(1,10000):
  35.         if(test()):
  36.             cptTrue = cptTrue +1
  37.         else:
  38.             cptFalse = cptFalse +1
  39.     print(cptTrue)
  40.     print(cptFalse)
  41.  
  42. #un peu meme principe que test()
  43. def gen_sample():
  44.     while True:
  45.         m = gen_medicament()
  46.         yield est_soigne(m)
  47.  
  48. def prog2():
  49.     #nombre d'essai
  50.     N = 10000
  51.     #en gros fait un tableau de true et false en fonction du test effectué
  52.     patients = islice(gen_sample(), N)
  53.     #taux observé de true (somme des true / nombre d'essai)
  54.     #va etre different pour différents runs du programme mais a peu pres similaire
  55.     obs = sum(patients) / N
  56.    
  57.     #taux calculé avec les formules de stats
  58.     #fixe = 0,9633333333
  59.     th = .98/3 + .96/3 + .95/3
  60.    
  61.     print(th, obs)
  62.  
  63. prog2()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement