logo

Simuler le lancer d'un dé (Algorithme)


secondeSimuler le lancer d'un dé (Algorithme)

#msg2790101#msg2790101 Posté le 28-12-09 à 18:58
Posté par Profilophelie59230 ophelie59230

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.
re : Simuler le lancer d'un dé (Algorithme)#msg2790405#msg2790405 Posté le 28-12-09 à 21:22
Posté par ProfilColl Coll Moderateur

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

Publicité

re : Simuler le lancer d'un dé (Algorithme)#msg2790511#msg2790511 Posté le 28-12-09 à 22:09
Posté par Profilophelie59230 ophelie59230

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)
re : Simuler le lancer d'un dé (Algorithme)#msg2790807#msg2790807 Posté le 29-12-09 à 07:45
Posté par ProfilColl Coll Moderateur

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.

re : Simuler le lancer d'un dé (Algorithme)#msg2793208#msg2793208 Posté le 29-12-09 à 22:56
Posté par Profilophelie59230 ophelie59230

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.
re : Simuler le lancer d'un dé (Algorithme)#msg2793445#msg2793445 Posté le 30-12-09 à 08:39
Posté par ProfilColl Coll Moderateur

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)

re : Simuler le lancer d'un dé (Algorithme)#msg2803209#msg2803209 Posté le 02-01-10 à 21:04
Posté par Profilophelie59230 ophelie59230

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.
re : Simuler le lancer d'un dé (Algorithme)#msg2803237#msg2803237 Posté le 02-01-10 à 21:14
Posté par ProfilColl Coll Moderateur

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


re : Simuler le lancer d'un dé (Algorithme)#msg2803368#msg2803368 Posté le 02-01-10 à 21:46
Posté par Profilophelie59230 ophelie59230

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.
re : Simuler le lancer d'un dé (Algorithme)#msg2803388#msg2803388 Posté le 02-01-10 à 21:52
Posté par ProfilColl Coll Moderateur

Tout à fait

Tu vois que c'est amusant les algorithmes !

Je t'en prie et à une prochaine fois !

re : Simuler le lancer d'un dé (Algorithme)#msg2803535#msg2803535 Posté le 02-01-10 à 22:32
Posté par Profilophelie59230 ophelie59230

algorithme de simulation de lancers de dés#msg4369947#msg4369947 Posté le 05-11-12 à 12:12
Posté par ProfilPsy-4 Psy-4

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!

Répondre à ce sujet

réservé Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster
attention Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.

  • Ce topic

    imprimer Imprimer
    réduire la tailleRéduire   /   agrandir la tailleAgrandir

    Pour plus d'options, connection connectez vous !
  • Fiches de maths

    * fiches de niveau seconde
    50 fiches de mathématiques en seconde disponibles.


maths - prof de maths - cours particuliers haut de pagehaut Retrouvez cette page sur ilemaths l'île des mathématiques
© Tom_Pascal & Océane 2014