👤

Sagot :

Bonsoir.

Comme l'exercice n'est pas clair quand il dit "trouver un moyen" je te propose de créer une fonction dice qui va retourner la valeur d'un lancé du dé pipé.

N'oublie pas d'importer le module random :

from random import *

Pour simuler ce dé pipé, prenons un nombre aléatoire entre 0 et 1 (grâce à la fonction random). Si ce nombre est inférieur à 0.1, cela équivaut donc à une probabilité de 10%. De même pour la probabilité de faire 2, 3, 4 et 5 (elle est de 60%, donc notre pseudo nombre aléatoire doit être inférieur à 0.7 dans ce cas). Sinon, on retourne 6 (30% de probabilité).

Voici donc notre fonction qui simule le dé pipé :

def dice():

   r = random()

   if r < 0.1:

       return 1

   if r < 0.7:

       return choice([2, 3, 4, 5])

   return 6

Ensuite, pour le tester, nous allons utiliser une boucle afin de lancer plusieurs fois notre dé. L'exercice demande 100000 lancés, alors lançons le dé 100000 fois et enregistrons le résultat dans une liste L où l'élément L[i] correspond au nombre de fois que le chiffre i+1 a été obtenu (par exemple la liste [12, 15, 14, 23, 48, 74] indique qu'on a obtenu 12 fois le chiffre 1, 15 fois le chiffre 2, etc...) :

L = [0]*6

for i in range(100000):

   d = dice() #nous lançons notre dé pipé

   L[d-1] += 1

Enfin pour afficher le résultat sous forme de pourcentage je te propose de faire comme ceci :

for p in L:

   print(p/1000, "%")

Remarque : j'ai divisé par 1000 car le pourcentage est de [tex]\frac{p\times100000}{100}[/tex] (ce qui équivaut à [tex]\frac{p}{1000}[/tex]).

Voici un exemple de sortie que j'ai obtenue :

10.166 % #10% de chance d'obtenir 1

14.912 % #15% de chance d'obtenir 2

15.099 % #15% de chance d'obtenir 3

15.079 % #15% de chance d'obtenir 4

14.917 % #15% de chance d'obtenir 5

29.827 % #30% de chance d'obtenir 6

Tu peux relancer plusieurs fois le programme et tu trouveras des pourcentages proches de ce qu'on avait comme probabilité d'avoir.

Voici le code complet :

from random import *

def dice():

   r = random()

   if r < 0.1:

       return 1

   if r < 0.7:

       return choice([2, 3, 4, 5])

   return 6

L = [0]*6

for i in range(100000):

   d = dice()

   L[d-1] += 1

for p in L:

   print(p/1000, "%")

Si tu as des questions n'hésite pas :)

Bonne soirée ^^

© 2024 IDNLearn. All rights reserved.