Obtenir des nombres aléatoires en Java [dupliquer]

Doublon Possible:
Java: générer un nombre aléatoire dans une plage

Je voudrais obtenir une valeur aléatoire entre 1 et 50 en Java.

Comment puis-je faire cela avec l'aide de Math.random();?

Comment puis-je lier les valeurs que Math.random() retourne?

303
demandé sur Community 2011-05-04 21:52:46

2 réponses

import java.util.Random;

Random rand = new Random();

int  n = rand.nextInt(50) + 1;
//50 is the maximum and the 1 is our minimum 
504
répondu n_yanev 2017-02-19 19:59:27
int max = 50;
int min = 1;

1. En Utilisant Math.aléatoire ()

double random = Math.random() * 49 + 1;
or
int random = (int )(Math.random() * 50 + 1);

Cela vous donnera une valeur de 1 à 50 dans le cas de int ou 1.0 (inclus) à 50,0 (exclusif) en cas de double

Pourquoi?

Random() méthode retourne un aléatoire nombre compris entre 0.0 et 0.9..., vous multipliez-le par 50, donc limite supérieure devient 0,0 à 49.999... lorsque vous ajoutez 1, il devient 1.0 à 50.999... maintenant lorsque vous tronquez int, vous obtenez de 1 à 50. (merci à @rup dans les commentaires). leepoint écriture impressionnante sur les deux approches.

2. Utilisation de la classe aléatoire en Java.

Random rand = new Random(); 
int value = rand.nextInt(50); 

Cela donnera une valeur de 0 à 49.

Pour 1 à 50: rand.nextInt((max - min) + 1) + min;

Source de certains awesomeness aléatoire Java.

539
répondu zengr 2018-02-03 22:33:09