Maison > Java > javaDidacticiel > le corps du texte

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

藏色散人
Libérer: 2021-04-22 15:49:49
original
36453 Les gens l'ont consulté

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal