👤

Bonjour ! Merci d'avance pour l'aide qui me sera apporté :)
Ce programme python (intégralement réalisé par moi je suis fier) a un problème : sue 12 lancé, il n'y a que 8 qui sont retranscrit dans les résultats.
Merci pour l'aide encore !

from random import *
N = int(input('Donnez un nombre de lancés'))
Face_1_du_de = 0
Face_2_du_de = 0
Face_3_du_de = 0
Face_4_du_de = 0
Face_5_du_de = 0
Face_6_du_de = 0
frequence_de_1 = 0
frequence_de_2 = 0
frequence_de_3 = 0
frequence_de_4 = 0
frequence_de_5 = 0
frequence_de_6 = 0


for i in range (N):
if randint(1,6) == 1:
Face_1_du_de = Face_1_du_de + 1
frequence_de_1 = Face_1_du_de/N
else:
if randint(1,6) == 2:
Face_2_du_de = Face_2_du_de + 1
frequence_de_2 = Face_2_du_de/N
else:
if randint(1,6) == 3:
Face_3_du_de = Face_3_du_de + 1
frequence_de_3 = Face_3_du_de
else:
if randint(1,6) == 4:
Face_4_du_de = Face_4_du_de + 1
frequence_de_4 = Face_4_du_de/N
else:
if randint(1,6) == 5:
Face_5_du_de = Face_5_du_de + 1
frequence_de_5 = Face_5_du_de/N
else:
if randint(1,6) == 6:
Face_6_du_de = Face_6_du_de + 1
frequence_de_6 = Face_6_du_de/N

print('Apres avoir lancé',N,'fois le de :')
print('On obtient',Face_1_du_de,'la face 1, et sa frequence est',frequence_de_1)
print('On obtient',Face_2_du_de,'la face 2, et sa frequence est',frequence_de_2)
print('On obtient',Face_3_du_de,'la face 3, et sa frequence est',frequence_de_3)
print('On obtient',Face_4_du_de,'la face 4, et sa frequence est',frequence_de_4)
print('On obtient',Face_5_du_de,'la face 5, et sa frequence est',frequence_de_5)
print('On obtient',Face_6_du_de,'la face 6, et sa frequence est',frequence_de_6)

Sagot :

Réponse :

Explications :

Bonjour,

votre problème c'est que  à chaque "i" il y a 6 valeurs aléatoires randint(1,6) différentes puisque vous écrivez un randint(1,6)  à chaque if !!

Ce randint(1,6) étant d'ailleurs différent d'un "if" à l'autre !

voir le programme modifié :

avec ajout de " :" a la fin de l'input afin de mieux dégager la demande du nombre de lancer

il manque " /N" a la fin de : frequence_de_3 = Face_3_du_de

Remarque : dans votre affichage :

Apres avoir lancé 12 fois le dé :

On obtient 3 la face 1, et sa frequence est 0.25 : cette phrase n'est pas en bon français !!

écrire : On obtient 3 tirage(s) de la face 1, et sa fréquence de tirage vaut 0.25

un programme moins lourd avec des "elif" au lieur d'une succession de "else" et "if"

les " print(i,j) " vous permettent de voir pour chaque valeur de "i" la valeur du tirage "j,"  les print(i,j) sont à effacer avant de rendre au prof.

si nécessaire passez par les commentaires !!

-------------------------

from random import *

N = int(input('Donnez un nombre de lancés :')) # ajout de  :

Face_1_du_de = 0

Face_2_du_de = 0

Face_3_du_de = 0

Face_4_du_de = 0

Face_5_du_de = 0

Face_6_du_de = 0

frequence_de_1 = 0

frequence_de_2 = 0

frequence_de_3 = 0

frequence_de_4 = 0

frequence_de_5 = 0

frequence_de_6 = 0

j = 0

for i in range (N):

   j = randint(1,6)

   if j == 1:

       Face_1_du_de = Face_1_du_de + 1

       frequence_de_1 = Face_1_du_de/N

       print(i,j)

   elif j == 2:

       Face_2_du_de = Face_2_du_de + 1

       frequence_de_2 = Face_2_du_de/N

       print(i,j)

   elif j == 3:

       Face_3_du_de = Face_3_du_de + 1

       frequence_de_3 = Face_3_du_de/N

       print(i,j)

   elif j == 4:

       Face_4_du_de = Face_4_du_de + 1

       frequence_de_4 = Face_4_du_de/N

       print(i,j)

   elif j == 5:

       Face_5_du_de = Face_5_du_de + 1

       frequence_de_5 = Face_5_du_de/N

       print(i,j)

   elif j == 6:

       Face_6_du_de = Face_6_du_de + 1

       frequence_de_6 = Face_6_du_de/N

       print(i,j)

print('Apres avoir lancé',N,'fois le de :')

print('On obtient',Face_1_du_de,'la face 1, et sa frequence est',frequence_de_1)

print('On obtient',Face_2_du_de,'la face 2, et sa frequence est',frequence_de_2)

print('On obtient',Face_3_du_de,'la face 3, et sa frequence est',frequence_de_3)

print('On obtient',Face_4_du_de,'la face 4, et sa frequence est',frequence_de_4)

print('On obtient',Face_5_du_de,'la face 5, et sa frequence est',frequence_de_5)

print('On obtient',Face_6_du_de,'la face 6, et sa frequence est',frequence_de_6)

View image LEGRANDU48

© 2024 IDNLearn. All rights reserved.