Écrire un programme scilab qui simule ...

Bonjour à toutes et à tous,
j'ai un problème concernant cette question de scilab car je n'arrive pas à voir quel programme faire pour simuler l'expérience de cette question comme on nous le demande.
J'ai pensé aux instructions "if", "while" et "grand" peut-être pour simuler une loi géométrique mais je suis vraiment dans le flou.
Merci, d'avance, beaucoup.90158

Réponses

  • Il doit bien exister une "routine" qui propose un nombre (décimal) entre 0 et 1 pseudo-aléatoirement uniformément.
    Comme sur les calculatrices ou dans un tableur. Sur Excel, par exemple, c'est =ALEA().

    Une fois trouvée cette commande, on simule habituellement le lancer de la pièce par :
    Si ALEA()<0,5, alors écrire "Pile" sinon écrire "Face".

    Edit : rand() devrait faire cela.
    Je ne pratique pas Scilab.
  • D'accord merci, mais je ne vois pas comment utiliser le "if" dans le programme.
    Comme programme je propose celui-ci.
    Est-ce correct ?90162
  • Je regarde ton programme et je me demande d'abord pourquoi tu initialise Z à 1.
    Pour moi c'est plutôt à 0.

    Je ne connais pas Scilab mais l'instruction 2 : rand() m'est étrange.
    Pour moi ça balance un nombre...ce n'est pas une instruction, enfin, c'est comme si tu écrivais "0,123".

    La boucle me va bien tant qu'on n'a pas "pile", on incrémente z.
    C'est là peut-être que le diable qui est dans les détails préfère initialiser Z à 1, finalement...

    Je ne comprends pas la ligne "x=...".
    A ce stade, il me semble qu'il faut simuler un tirage d'un entier entre 1 et k (le k étant la valeur stockée dans Z).

    Dans un tableur on a vu l'instruction "ALEA.ENTRE.BORNES(1;k)" arriver, déjà toute faite.
    Si cela n'existe pas, il suffit (c'est un peut laborieux peut-être) de partager [0;1] en k parties et de regarder si un nouveau "rand()" est dans l'un des intervalles : le premier, le second, ... le k-eme.

    Mais, tout ce que je décris, est-ce la ligne que je ne comprends pas ?
  • Tu peux aussi utiliser 'grand' pour Z (donc éviter ta boucle).
  • D'accord merci.
    Et guiguiche concernant votre remarque, est-ce que ce nouveau programme permet bien de répondre à la question et de simuler l'expérience ?

    Et mise à part cela mon premier programme est bon selon vous pour simuler l'expérience et répondre à la question ?90164
  • En fait, le programme officiel stipule que le concepteur du sujet doit rappeler les paramètres à fournir à 'grand' s'il est nécessaire de l'utiliser. La boucle avec while et rand() faisait largement l'affaire.
    La version que tu donnes avec les 2 'grand' est correcte.
  • A la place de grand tu peux aussi utiliser
    int(z*rand())+ 1
    
  • En ECS/ECE, on utilise plutôt 'floor' que 'int'.
  • merci beaucoup :-)
Connectez-vous ou Inscrivez-vous pour répondre.