Bonjour j'aurais besoin d'aide s'il vous plaît, je n'arrive pas à faire cet exercice, je propose 2 solutions à la fin. Merci d'avance.
Enoncé: a) écrire un algorithme en langage naturel qui simule n lancers d'un dé équilibré
b) compléter l'algorithme par l'affichage du nombre de fois où l'on obtient la face numérotée 6 lors des n lancers
Solutions: a)n est le nombre du dé
entrée: saisir S
initialisation: S prend la valeur zéro
traitement: Pour n allant de 1 à 6
| S prend la valeur S+n
Fin Pour
sortie: afficher S
OU n est le nombre de lancers de dé
entrée: saisir n
initialisation: S prend la valeur zéro
traitement: Pour n allant de 1 à ?
| f prend la valeur d'un entier aléatoire de 1 à 6
sortie: afficher f
b)je ne trouve pas, pouvez-vous me corriger au a) et peut être que je trouverais après. Merci encore.
Bonjour,
La deuxième proposition me plaît beaucoup plus (je réponds ainsi parce qu'il y a de nombreuses manières de faire ! )
Ce programme, écrit avec Algobox, semble donner satisfaction :
1 VARIABLES
2 i EST_DU_TYPE NOMBRE
3 n EST_DU_TYPE NOMBRE
4 f EST_DU_TYPE NOMBRE
5 DEBUT_ALGORITHME
6 LIRE n
7 POUR i ALLANT_DE 1 A n
8 DEBUT_POUR
9 f PREND_LA_VALEUR round(0.501+5.998*random())
10 AFFICHER f
11 FIN_POUR
12 FIN_ALGORITHME
i est le compteur dans la boucle ; il ira de 1 jusqu'au nombre n que tu auras choisi
n est le nombre de lancers
f est la valeur lue sur la face du dé
la ligne 9 est la plus délicate ; elle permet de trouver un nombre entier aléatoire entre 1 et 6 ; cette ligne dépend beaucoup du langage utilisé et même de l'ordinateur...
_________________
Quelques modifications simples permettront de compter le nombre de fois où la valeur sortie est 6
Comment fait-on pour que la valeur round soit comprise entre 1 et 6 sur la calculatrice?
Je n'arrive pas à trouver l'algorithme qui affiche 6
ou alors on remplace round par 6?
mais on doit afficher le nombre de fois où l'on obtient la valeur 6 et non afficher f (c'est-à-dire 6)
1) pour afficher entre 1 et 6 :
Tu as certainement une fonction "alea" ou "rand" ou "random" ou ... qui donne un nombre aléatoire compris entre 0 et 1
Si tu multiplies le résultat par 6 tu auras un nombre aléatoire compris entre 0 et 6
Mais on veut un nombre entier compris entre 1 et 6 (un dé ne donne ni 0 ni 7...)
Ce que j'ai fait (mais on peut faire autrement) à la ligne 9 :
j'ajoute 0,501 et je multiplie par 5,998 le résultat aléatoire :
donc j'obtiens un résultat compris entre 0,501 et 0,501 + 5,998 = 6,499
et ensuite avec la fonction "round" j'arrondis ce résultat, ce qui donne bien un entier compris entre 1 et 6 puisque 0,501 est arrondi à 1 et que 6,499 est arrondi à 6
Tu peux trouver d'autres manières de faire. Bien sûr il faut veiller à ce que les nombres de 1 à 6 conservent la même probabilité (uniforme) d'être choisis par le programme.
2) pour compter combien de fois la valeur 6 est obtenue
Il faut modifier un peu le programme et j'aimerais bien lire tes idées à ce sujet.
Tu peux m'écrire tes instructions en français ordinaire (pas obligatoirement dans un langage de calculatrice), comme dans l'énoncé que tu as posté hier à 18 h 58 ; c'est très clair.
entrée: saisir i
saisir n
initialisation:
traitement: pour i allant de 1 à n
et si f=6
| f prend la valeur round(+1*6)
fin pour
sortie: afficher n
Je ne pense pas que sa va car si f=6 on ne peut pas donner à f une valeur aléatoire.
Il n'y a pas besoin de saisir i
Que ferait ton programme ? Tu rentres n au début et à la fin il affiche n
Donc (s'il marche) il ne s'est rien passé...
Avec un langage comme le tien, je refais le programme du 28/12 à 21 h 22
entrées :
saisir n
initialisations :
traitement :
pour i allant de 1 à n
f prend la valeur arrondi(0,501 + 5,998 aléatoire() )
afficher f
fin pour
fin de l'algorithme
Tu vois que pour cette version il n'y a aucune initialisation
Que fait ce programme ?
Il te demande combien de lancers de dé tu veux simuler ? C'est le nombre n
Puis, dans une boucle qu'il parcourt n fois (pour les n lancers)
. Il simule un lancer et calcule la valeur montrée par le dé : c'est le nombre f
. Il affiche cette valeur lue sur le dé
Comprends-tu bien ce fonctionnement ?
Sinon pose des questions.
Si oui comment ajouter deux ou trois lignes pour compter le nombre de fois où le nombre 6 est sorti ? (Bien sûr il ne faut pas tout casser du programme qui simule des lancers. Il faut juste ajouter ce qui va compter le nombre de 6 pour n lancers)
Je comprends le fonctionnement de l'algorithme mais je ne comprends pas comment on peut faire pour que quand f est égal à 6 on compte les n lancers.
entrée: saisir n
initialisation: n prend la valeur 0
traitement: Pour i allant de 1 à n
| f prend la valeur d'un entier aléatoire (0,501+5,998*aléatoire())
Fin pour
Si f=6
| n prend la valeur n+1
sortie: afficher n
Je pense que c'est ça mais je ne suis pas sûre.
Vois-tu que les deux premières lignes sont tout à fait contradictoires ?
Première ligne : tu rentres une valeur de n
Deuxième ligne : tu mets ce n à zéro
Donc... cela ne sert à rien de rentrer une valeur de n puisqu'aussitôt après tu l'annules !
______________
Mais il y a des idées !
Donc : il faut absolument que le nombre de lancers et le compteur des 6 soient représentés par des lettres différentes.
n : nombre de lancers
k : compteur, par exemple
D'accord ?
entrées :
saisir n
initialisations :
k prend la valeur 0
traitement :
pour i allant de 1 à n
f prend la valeur arrondi(0,501 + 5,998 aléatoire() )
si f = 6
k prend la valeur k + 1
fin du si
fin pour
afficher k
fin de l'algorithme
Merci beaucoup! J'ai compris en fait n est le nombre de lancers global et k est le nombre de lancers qui ont donné 6.
Bonjour, j'ai un exercice du même type à faire, il faut que j'établisse un algorithme permettant de simuler le lancer de 100 dés equilibrés et donnant le nombre de fois où le 6 a été obtenu. J'ai réalisé un algorithme mais je ne suis pas sûre. Voilà ce que j'ai fait:
VARIABLES
i est du type nombre
f est du type nombre
k prend la valeur 0
DEBUT ALGORITHME
pour i allant de 1 à 100
f prend la valeur floor(6*random())+1
SI f=6
DEBUT SI
k prend la valeur k+1
FIN SI
FIN POUR
AFFICHER k
Dans mon algorithme k est le nombre de fois où le 6 a été obtenu
Pourriez-vous me dire si c'est juste svp?(sachant que c'est sur Algobox) Merci d'avance!
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :