Partage
  • Partager sur Facebook
  • Partager sur Twitter

dechiffrage d une formule

    12 décembre 2010 à 23:31:07

    bonjour tout le monde voila je m explique je cherche a comprendre les generations de nombre aleatoire en language c sa ce traduit par
    (rand() % (MAX - MIN + 1)) + MIN;
    en formule mathématique je crois que c est sa

    Image utilisateur
    pourriez vous m expliquer la formule merci
    • Partager sur Facebook
    • Partager sur Twitter
      12 décembre 2010 à 23:52:26

      On se donne les deux premiers termes, <math>\(x_0\)</math> et <math>\(x_1\)</math> ainsi qu'un entier <math>\(M\)</math>. A partir de ces deux termes on peut calculer tous les suivants par la formule que tu as mises plus haut. J'ai néanmoins des doutes sur le fait que ce soit la "formule" utilisée en C pour "créer de l'aléatoire".
      • Partager sur Facebook
      • Partager sur Twitter
        13 décembre 2010 à 0:04:03

        merci aladix decidement je comprend vraiment rien aux maths en fai la formule en c ce traduit par je croi
        (37888 MODULO(40-2+1))+2 j ai mi nimporte quoi en chiffre je voudrai savoir si sa donne un resultat
        • Partager sur Facebook
        • Partager sur Twitter
          13 décembre 2010 à 0:12:29

          euh ouais ça donne quelque chose, ça donne même très exactement (37888 mod (39))+2.
          Le reste de la division euclidienne de 37888 par 39 étant 19, le résultat est 21.

          En fait la formule plus haut ramène un nombre dans [MIN,MAX+1] (en l'occurrence un nombre donné par la fonction rand);. Le modulo sert à remettre la nombre dans [0,MAX-MIN+1] et l'addition qui suit dans [MIN,MAX+1] donne un nombre aléatoire dans je ne sais quoi à préciser. Faudrait en savoir plus sur la fonction rand() et personnellement j'connais rien sur le sujet.
          • Partager sur Facebook
          • Partager sur Twitter
            13 décembre 2010 à 0:17:07

            merci aladix d avoir pri la peine de repondre a ma question c est plus clair maintenant
            • Partager sur Facebook
            • Partager sur Twitter
              13 décembre 2010 à 1:40:25

              Citation : mikoko

              je cherche a comprendre les generations de nombre aleatoire en language c sa ce traduit par
              (rand() % (MAX - MIN + 1)) + MIN;
              en formule mathématique je crois que c est sa

              Image utilisateur



              Pas du tout ;) désolé !

              Ta première formule sert usuellement à déterminer un entier aléatoire entre deux valeurs données MIN et MAX. Car le problème de la fonction rand() est qu'elle te renvoie un nombre aléatoire sur une plage très large, entre 0 et RAND_MAX qui vaut au moins 32767. Exemple :

              #include <stdio.h>
              #include <stdlib.h>
              
              int main(void)
              {
                  printf("%d\n",rand());
                  #define MIN 42
                  #define MAX 100
                  printf("%d\n",rand()%(MAX-MIN+1)+MIN);
                  return 0;
              }
              


              1804289383
              88
              • Partager sur Facebook
              • Partager sur Twitter

              dechiffrage d une formule

              × 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