Double aléatoire entre min et max

double get_random(double min, double max) {
  /* Returns a random double between min and max */

  return min * ((double) rand() / (double) RAND_MAX) - max;
}

C'est ma fonction pour générer des doubles entre un min et un max. Cependant, quand je l'appelle get_random(-1.0, 1.0);, j'obtiens des valeurs entre -2.0 et de -1.0.

Aucune idée de ce que je fais mal et comment je peux résoudre ce problème?

(rand/RAND_MAX) génère un nombre compris entre 0.0 et 1.0. Afin de mettre ces deux extrêmes, dans le reste de l'équation, et vous devriez voir pourquoi ça ne marche pas.
voir: stackoverflow.com/questions/686353/c-random-float

OriginalL'auteur David Gomes | 2012-05-27