Génération de nombres aléatoires Java

La génération de nombres aléatoires en Java est une tâche courante. Par exemple, vous souhaiterez peut-être exécuter des tests avec des valeurs aléatoires à chaque fois. Dans cet article, nous examinons différentes façons de générer des nombres aléatoires en Java.



Comment générer des nombres aléatoires en Java

En Java, nous pouvons générer des nombres aléatoires en utilisant le java.util.Random classer.

Une fois que nous importons la classe Random, nous pouvons en créer un objet qui nous donne la possibilité d'utiliser des nombres aléatoires.


Par exemple, les méthodes nextInt() et nextLong() renverra un nombre compris dans la plage de valeurs (négative et positive) des types de données int et long respectivement.



Génération aléatoire de Int, Long et Boolean

import java.util.Random; public class GenerateRandomNumbers {
static Random rand;
public static void main(String[] args) {
rand = new Random();
System.out.println('Random integer: ' + rand.nextInt());
System.out.println('Random long: ' + rand.nextLong());
System.out.println('Random boolean: ' + rand.nextBoolean());
} }


Générer des nombres aléatoires dans une plage

Parfois, nous voulons que des nombres aléatoires soient générés à partir d'une certaine plage, par exemple entre 1 et 50.


Pour ce faire, nous pouvons fournir un paramètre entier au nextInt() méthode. Ce paramètre définit la limite supérieure de la plage.

Une chose à noter ici est que le nombre de limite supérieure n'est pas inclus comme l'un des nombres générés. Par exemple, nextInt(5) génère des nombres à partir de 0 à 4 compris.

Si nous souhaitons aussi 5 pour être dans la liste des nombres aléatoires, nous devons utiliser nextInt(5)+1

import java.util.Random; public class GenerateRandomNumbers {
static Random rand;
public static void main(String[] args) {
rand = new Random();
int randInt = rand.nextInt(5) + 1;
System.out.println('Random integer: ' + randInt);
} }


Génération de nombres aléatoires sécurisés en Java

La classe Random génère des nombres aléatoires de manière déterministe. L'algorithme qui produit le caractère aléatoire est basé sur un nombre appelé graine. Si le numéro de départ est connu, il est possible de déterminer les nombres qui vont être produits à partir de l’algorithme.


Le but du SecureRandom La classe est de générer des nombres aléatoires cryptographiquement forts.

Le SecureRandom doit produire une sortie non déterministe. Par conséquent, tout matériel de semence passé à un SecureRandom l'objet doit être imprévisible.

Voici un exemple d'utilisation de SecureRandom classe pour générer des nombres aléatoires en Java

import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.SecureRandom; public class GenerateRandomNumbers {
static SecureRandom secureRandomGenerator;
public static void main(String[] args) {


try {

secureRandomGenerator = SecureRandom.getInstance('SHA1PRNG', 'SUN');
}

catch (NoSuchAlgorithmException | NoSuchProviderException e) {
}

//Get random integer in range
int randInRange = secureRandomGenerator.nextInt(499);
System.out.println(randInRange);
} }

Les exemples ci-dessus illustrent comment générer des nombres aléatoires en Java.


Référence: Génération de nombres aléatoires sécurisés