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

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

Jan 17, 2019 am 10:13 AM

Comment générer des nombres aléatoires en Java : placez d'abord l'instruction d'importation avant le début de la classe du programme ; puis créez un objet Random et enfin sélectionnez un nombre aléatoire dans une certaine plage ;

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

L'environnement d'exploitation de cet article : système Windows 7, ordinateur Dell G3, Java version 8.0.

Générer une série de nombres aléatoires est l'une des tâches courantes qui surviennent de temps en temps. En Java, cela peut être réalisé simplement en utilisant la classe java.util.Random.

Comme pour toute classe API, la première étape consiste à placer l'instruction d'importation avant le démarrage de la classe de programme :

 import java.util.Random;
Copier après la connexion

Ensuite, créez un objet Random :

 Random rand = new Random();
Copier après la connexion
Copier après la connexion

L'objet Random vous fournit un simple générateur de nombres aléatoires. Les méthodes de l'objet offrent la possibilité de sélectionner des nombres aléatoires. Par exemple, les méthodes nextInt() et nextLong() renverront respectivement un nombre compris dans la plage de valeurs (négatives et positives) des types de données int et long :

 Random rand = new Random();
for (int j=0;j < 5;j++)
{
  System.out.printf("%12d ",rand.nextInt());
  System.out.print(rand.nextLong());
  System.out.println();
}
Copier après la connexion

Le nombre renvoyé sera être une valeur int et longue sélectionnée au hasard :

-1531072189 -1273932119090680678
1849305478  6088686658983485101
1043154343  6461973185931677018
1457591513  3914920476055359941
-1128970433 -7917790146686928828
Copier après la connexion

Choisissez un nombre aléatoire dans une plage

Généralement, le nombre aléatoire à générer doit provenir d'une certaine plage (par exemple, entre 1 et 40 inclus). À cette fin, la méthode nextInt() peut également accepter le paramètre int. Il représente la limite supérieure d'une plage numérique. Cependant, le numéro de plafond n'est pas inclus dans l'un des numéros sélectionnables. Cela peut paraître déroutant, mais la méthode nextInt() fonctionne à partir de zéro. Par exemple :

 Random rand = new Random();
rand.nextInt(40);
Copier après la connexion

sélectionnera uniquement un nombre aléatoire de 0 à 39. Pour sélectionner dans une plage commençant par 1, ajoutez simplement 1 au résultat de la méthode nextInt(). Par exemple, pour sélectionner un nombre entre 1 et 40, ajoutez au résultat :

 Random rand = new Random();
int pickedNumber = rand.nextInt(40) + 1;
Copier après la connexion

Si la plage commence par un nombre plus élevé, vous devrez soustraire :

Le nombre de départ du numéro de casquette, puis plus un.

Ajoute le numéro de départ au résultat de la méthode nextInt().

Par exemple, pour choisir un nombre de 5 à 35, le nombre limite supérieur serait 35-5 + 1 = 31, et il faudrait ajouter 5 au résultat :

 Random rand = new Random();
int pickedNumber = rand.nextInt(31) + 5;
Copier après la connexion

Cours aléatoire À quel point est-ce aléatoire ?

Je dois souligner que la classe Random génère des nombres aléatoires de manière déterministe. L'algorithme qui génère le caractère aléatoire est basé sur un nombre appelé graine. Si le numéro de graine est connu, il est possible de calculer le nombre qui résultera de l'algorithme. Pour le prouver, j'utiliserai le numéro du jour où Neil Armstrong a posé le pied pour la première fois sur la lune comme numéro de graine (20 juillet 1969) :

 import java.util.Random;
public class RandomTest {;
  public static void main(String[] args) {
    Random rand = new Random(20071969);
    for (int j = 0; j
Copier après la connexion

Celui qui exécute ce code, le généré " Le hasard " la séquence de nombres sera :

 3 0 3 0 7 9 8 2 2 5
Copier après la connexion

Par défaut, le numéro de départ utilisé est donné par :

 Random rand = new Random();
Copier après la connexion
Copier après la connexion

est l'heure actuelle depuis le 1er janvier 1970 en millisecondes en unités) . Généralement, cela produira des nombres suffisamment aléatoires pour la plupart des objectifs. Cependant, veuillez noter que deux générateurs de nombres aléatoires créés dans la même milliseconde généreront le même nombre aléatoire.

Soyez également prudent lorsque vous utilisez la classe Random pour toute application qui doit disposer d'un générateur de nombres aléatoires sécurisé (par exemple, les programmes de jeux d'argent). Le numéro de départ peut être deviné en fonction de la durée d'exécution de l'application. Généralement, pour les applications où les nombres aléatoires sont absolument critiques, il est préférable de trouver des alternatives aux objets Random. Pour la plupart des applications qui ne nécessitent qu'un élément aléatoire (par exemple, des dés pour un jeu de société), cela fonctionne très bien.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation? Comment fonctionne le mécanisme de chargement de classe de Java, y compris différents chargeurs de classe et leurs modèles de délégation? Mar 17, 2025 pm 05:35 PM

Le chargement de classe de Java implique le chargement, la liaison et l'initialisation des classes à l'aide d'un système hiérarchique avec Bootstrap, Extension et Application Classloaders. Le modèle de délégation parent garantit que les classes de base sont chargées en premier, affectant la classe de classe personnalisée LOA

Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave? Comment implémenter la mise en cache à plusieurs niveaux dans les applications Java à l'aide de bibliothèques comme la caféine ou le cache de goyave? Mar 17, 2025 pm 05:44 PM

L'article examine la mise en œuvre de la mise en cache à plusieurs niveaux en Java à l'aide de la caféine et du cache de goyave pour améliorer les performances de l'application. Il couvre les avantages de configuration, d'intégration et de performance, ainsi que la gestion de la politique de configuration et d'expulsion le meilleur PRA

Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux? Comment puis-je utiliser JPA (Java Persistance API) pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux? Mar 17, 2025 pm 05:43 PM

L'article discute de l'utilisation de JPA pour la cartographie relationnelle des objets avec des fonctionnalités avancées comme la mise en cache et le chargement paresseux. Il couvre la configuration, la cartographie des entités et les meilleures pratiques pour optimiser les performances tout en mettant en évidence les pièges potentiels. [159 caractères]

Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance? Comment utiliser Maven ou Gradle pour la gestion avancée de projet Java, la création d'automatisation et la résolution de dépendance? Mar 17, 2025 pm 05:46 PM

L'article discute de l'utilisation de Maven et Gradle pour la gestion de projet Java, la construction de l'automatisation et la résolution de dépendance, en comparant leurs approches et leurs stratégies d'optimisation.

Mar 17, 2025 pm 05:45 PM

L'article discute de la création et de l'utilisation de bibliothèques Java personnalisées (fichiers JAR) avec un versioning approprié et une gestion des dépendances, à l'aide d'outils comme Maven et Gradle.

See all articles