Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction rand()

Sujet résolu
    3 janvier 2008 à 13:46:46

    je n'ai pas compris exactement commen on fait pour définir des bornes à le fonction random. :(
    Es-ce-que quelqu'un pourait m'expliquer comment faire s'il vous plais
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 janvier 2008 à 13:51:22

      Ben, d'abord, en tout début de code tu mets ceci :

      1. srand(time(NULL));


      Ce code ne doit être lu qu'une fois, c'est pourquoi je te conseille de le mettre juste après tes déclarations de variables.

      Ensuite, il y a ce code :

      1. nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;


      MIN est une variable que tu crée, elle a pour valeur la borne minimale.
      MAX est une autre variable que tu crée, elle a pour valeur la borne maximale.
      • Partager sur Facebook
      • Partager sur Twitter
        3 janvier 2008 à 14:15:23

        Citation : bouskidou

        je n'ai pas compris exactement commen on fait pour définir des bornes à le fonction random. :(
        Es-ce-que quelqu'un pourait m'expliquer comment faire s'il vous plais


        Il faut déjà connaitre le fonctionnement de l'opérateur modulo (en gros : reste de la division entière).

        Ensuite, n'importe quelle valeur % N donne une valeur comprise entre 0 et N-1.

        Enfin, si on veut une plage de MIN à MAX, la formule est donc

        val = MIN + (rand() % (MAX - MIN + 1));

        MIN est la partie fixe
        MAX - MIN + 1 est la plage 'variable'
        rand() % (MAX - MIN + 1) donne une valeur comprise entre 0 et (MAX - MIN + 1) -1, soit MAX - MIN + 1 - 1 = MAX - MIN

        L'expression a donc une valeur qui va de

        val = MIN + 0 à val = MIN + (MAX - MIN);

        soit MIN à MAX

        CQFD.
        • Partager sur Facebook
        • Partager sur Twitter
        Music only !

        Fonction rand()

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown