Comment obtenir un nombre aléatoire compris entre 1 et 100 chez randDouble en Java?

D’accord, je suis encore relativement nouveau en Java. Nous avons reçu une aide pour créer un jeu dans lequel vous devez deviner un entier aléatoire généré par l’ordinateur. Le problème est que notre conférencier insiste pour que nous utilisions:

double randNumber = Math.random(); 

Puis traduisez-le en un entier aléatoire de 1 à 100 inclus. Je suis un peu perdu. Ce que j’ai jusqu’ici est ceci:

 //Create random number 0 - 99 double randNumber = Math.random(); d = randNumber * 100; //Type cast double to int int randomInt = (int)d; 

Cependant, le problème persistant du double aléatoire est que 0 est une possibilité alors que 100 ne l’est pas. Je veux modifier cela pour que 0 ne soit pas une réponse possible et que 100 le soit. Aidez-moi?

Tu y es presque. Ajoutez simplement 1 au résultat:

 int randomInt = (int)d + 1; 

Cela va “décaler” votre plage de 1 - 100 au lieu de 0 - 99 .

ou

 Random r = new Random(); int randomInt = r.nextInt(100) + 1; 

Voici un moyen propre et efficace de le faire, avec des contrôles de gamme! Prendre plaisir.

 public double randDouble(double bound1, double bound2) { //make sure bound2> bound1 double min = Math.min(bound1, bound2); double max = Math.max(bound1, bound2); //math.random gives random number from 0 to 1 return min + (Math.random() * (max - min)); } 

// Plus tard, il suffit d’appeler:

 randDouble(1,100) //example result: //56.736451234 
  double random = Math.random(); double x = random*100; int y = (int)x + 1; //Add 1 to change the range to 1 - 100 instead of 0 - 99 System.out.println("Random Number :"); System.out.println(y);