153 votes

Comment générer un double aléatoire dans une plage donnée

J'ai une question assez simple en Java. J'ai deux doubles comme suit

 double min=100;
double max=101;
 

Et en utilisant un générateur aléatoire, j'ai besoin de créer une double valeur entre la plage de min, max.

 Random r=new Random();
r.nextDouble()
 

mais il n'y a rien ici où l'on puisse spécifier la plage ... Quelqu'un peut-il les aider dans ce domaine ..

250voto

mob Points 61524

Pour générer une valeur aléatoire comprise entre rangeMin et rangeMax :

 Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
 

44voto

Topera Points 4941

Utilisez ceci:

 double start = 400;
double end = 402;
double random = new Random().nextDouble();
double result = start + (random * (end - start));
System.out.println(result);
 

MODIFIER:

new Random().nextDouble() : nombre aléatoire compris entre 0 et 1.

start : numéro de début, pour décaler le numéro "vers la droite"

end - start : intervalle. Random vous donne de 0% à 100% de ce nombre, car random vous donne un nombre de 0 à 1.


EDIT 2: Tks @daniel et @aaa bbb. Ma première réponse était fausse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X