Rand() dans c++

Résolu
Bonjour,
je suis en train de programmer en c++ avec dev-c++, et lorsque j'utilise la fonction rand() pour générer
des nombres aléatoires la valeur max (RAND_MAX)que la germe peut donner correspond au max de type short 32767, et donc je ne peut pas générer des nombres supperieure à 32767, merci de m'aider si vous connaissez une solution, à plus.
Configuration: Windows XP
Internet Explorer 8.0

4 réponses

  1. Contributeur
    Salut,
    Il n'existe pas de solutions standards. A toi de te faire la fonction.
    Si RAND_MAX vaut 32767, tu sauvegardes le résultat de rand dans une variable, tu lui fais subir une rotation à droite de 15 bits et tu raditionnes avec rand.
    Ce qui donne pour un long long par exemple :
    long long toto=rand();
    toto<<=15;
    toto+=rand();

    Cdlt
    2
    1. salut, merci mon ami pour votre réponse, ce que je voulais savoir si par exemple on peut faire rand(double)
      pour générer directement des nombres réels peudo-aliatoires, mais je pense que ça n'existe pas, la seule methode c'est de faire de la gymnastique,et merci encore pour l'information sur srand(), et au revoir.
      0
      1. salut, merci tous les deux pour vos réponses, de la manipulation je sais faire,mais ce que je voulais savoir c'est est ce que il existe une instruction (fonction , mot clé) en c++ qui permet de modifier la fonction rand(), mais sa n'existe pas. merci encore une fois, et à plus.
        0
        1. Contributeur
          ça dépend ce que tu entends par modifier.
          Il y a srand() qui permet de modifier la suite pseudo aléatoire.
          0
      2. Contributeur
        Question con : et si tu les multiplies ?
        0
        1. Contributeur
          La multiplication ne permettra pas une répartition équiprobable.
          0