CodeGym /Blog Java /Random-FR /Classe Java.util.Random
Auteur
Jesse Haniel
Lead Software Architect at Tribunal de Justiça da Paraíba

Classe Java.util.Random

Publié dans le groupe Random-FR

Qu'est-ce que la classe java.util.Random en Java ?

La classe java.util.Random est utilisée pour générer des nombres pseudo-aléatoires. Les méthodes implémentées par cette classe sont utilisées pour générer différents types de données aléatoires tels que int, double et float. Il existe donc deux grands types de nombres aléatoires, les nombres statistiquement aléatoires et pseudo-aléatoires . Les nombres statistiquement aléatoires (comme les nombres aléatoires simples en mathématiques) sont un ensemble de valeurs qui n'ont pas de modèle reconnaissable. Par exemple, lancer un dé 10 fois générera à chaque fois un nombre aléatoire qui n'a pas de motif reconnaissable.

Que sont les nombres pseudo-aléatoires ?

Il s'agit d'un ensemble de valeurs statistiquement aléatoires mais dont le point de départ est connu . En Java, chaque nombre pseudo-aléatoire est produit par un algorithme. Ainsi, généralement, un cycle est répété chaque fois que java.util.Random génère un nombre aléatoire. Un générateur de nombres aléatoires en Java produira des nombres statistiquement aléatoires mais avec un point de départ connu, générés par un algorithme. Cela rend ces valeurs pseudo-aléatoires.

La classe java.util.Random est-elle cryptographiquement non sécurisée ?

Il est cryptographiquement non sécurisé car il dispose d'algorithmes implémentés pour générer des nombres aléatoires. En conséquence, une personne connaissant le fonctionnement de l'algorithme ne mettra pas beaucoup de temps à accéder à vos données sensibles. Donc, si vous travaillez avec des applications de sécurité, avez besoin de sécuriser des données sensibles ou avez besoin de générer des mots de passe aléatoires, il est préférable d'éviter d'utiliser cette classe. Il est utile dans de nombreux cas, comme générer un nombre aléatoire pour votre lancer de dés dans le ludo, le jeu, faire un lancer pour un match ou d'autres domaines où le résultat souhaité est imprévisible.

Déclaration de méthode

Pour utiliser les méthodes de cette classe, vous devez d'abord l'importer à partir du package en tant que

import java.util.Random;
Après l'importation, vous devez créer un objet de cette classe comme

Random randomNumbers = new Random();
Pour aller plus loin, examinons différents exemples d'utilisation de la classe java.util.Random .

Exemple


import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();
		
		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which 
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);
		
		/*
		 * Returns the next pseudo random integer value between 0 and 5  
		 * because if we use '6' then, it will give random numbers from 0 to 6 
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		
		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);
		
		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */
		
		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);
		
		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Sortir

----------Booléen aléatoire--------- La valeur booléenne aléatoire est : vrai ----------Entier aléatoire--------- Dé Lancer : 4 Lancer de dé : 6 Lancer de dé : 1 Lancer de dé : 1 Lancer de dé : 3 ----------Longueur aléatoire--------- Valeur longue aléatoire : -6029959293504570824 ------Octets aléatoires--------- Ce sont les octets aléatoires = [ -37 90 -98 -70 23 -111 19 108 ]

Méthodes

Nous allons maintenant discuter de certaines des méthodes fournies par cette classe, en gardant à l'esprit que randomNumbers est l'objet ou l'instance de notre classe.
  1. double() :

    Cette méthode renvoie une série infinie de valeurs doubles générées de manière pseudo-aléatoire. Voyons maintenant comment utiliser cette méthode.

    
    randomNumbers.doubles();
    
  2. ints() :

    Cette méthode renvoie une série infinie de valeurs entières générées de manière pseudo-aléatoire. Vous pouvez utiliser le script suivant pour appeler cette méthode.

    
    randomNumbers.ints();
    
  3. long() :

    Cette méthode renvoie une série infinie de valeurs longues générées de manière pseudo-aléatoire. Le script suivant est utilisé pour appeler cette méthode.

    
    randomNumbers.longs();
    
  4. nextBoolean() :

    Cette méthode renvoie la prochaine valeur booléenne pseudo-aléatoire distribuée uniformément à partir de la séquence du générateur de nombres aléatoires. La distribution uniforme est de forme rectangulaire, ce qui signifie que chaque valeur de la distribution a une probabilité égale. Voici comment utiliser cette méthode.

    
    randomNumbers.nextBoolean();
    
  5. nextInt(int n) :

    Cette méthode renvoie la prochaine valeur entière pseudo-aléatoire distribuée uniformément à partir de la séquence du générateur de nombres aléatoires entre 0 inclus et la valeur fournie exclusive. Découvrez rapidement comment utiliser cette méthode.

    
    randomNumbers.nextInt(10);
    

Conclusion

Nous espérons que vous comprenez maintenant ce qu'est java.util.Random et comment implémenter ses différentes méthodes et dans quel scénario l'utiliser. Vous pouvez toujours utiliser cette classe en Java. N'hésitez pas à vous entraîner et à revenir ici chaque fois que vous avez besoin de plus d'aide. Bon apprentissage!
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION