Prévisions météo
Nous allons générer des journées ensoleillées, nuageuses ou pluvieuses sur 50 ans (365*50 jours) avec la règle suivante que nous tiendrons secrète (et que notre calculatrice devra découvrir toute seule) :
-
Lorsqu’il y a du soleil (S) un jour, le lendemain il y a également du soleil dans 70% des cas. Dans 20% des autres cas le ciel sera nuageux (N) et dans 10% il sera pluvieux (P)
-
Lorsqu’il y a des nuages un jour, le lendemain il y a également des nuages dans 30% des cas. Dans 30% des autres cas le ciel sera ensoleillé et dans 40% il sera pluvieux (P)
-
Lorsqu’il y a de la pluie un jour, le lendemain il y a également de la pluie dans 50% des cas. Dans 20% des autres cas le ciel sera nuageux et dans 30% il sera ensoleillé
Simuler des lois discrètes
Pile ou face équilibré
Il y a plusieurs façons de simuler un lancer de pièce équilibré, par exemple :
>> from random import * >> choice([0,1]) 1
donnera 0 ou 1 dans environ 50% des cas.
>> random()<0.5 True
donnera True ou False également dans environ 50% des cas.
Pièce truquée
Comment simuler une pièce qui donne par exemple 60% de Pile et 40% de Face ? Une version très simple est :
>> random()<0.6 False
donnera True dans 60% des cas et False dans 40%. Pouvait-on utiliser choice ? Oui, par exemple en tapant :
>> >> choice([1]*60+[0]*40) 0
C’est-à-dire en créant une liste de 100 termes (60 fois “1” et 40 fois “0”, la probabilité d’obtenir un “1” est donc bien de 60%). Avouons que ce n’est pas une technique très efficace ! On peut aussi voir que 60% = 3 / 5 et que 40% = 2 / 5, donc au lieu de 100 termes 5 suffisent :
>> >> choice([1,1,1,0,0]) 1
Dé truqué
Comment simuler le lancer d’un dé (4 faces pour simplifier) en ayant non pas 25% de chance par face mais par exemple 30% d’avoir le “