Maison  >  Article  >  Java  >  Comment définir des nombres aléatoires en Java

Comment définir des nombres aléatoires en Java

巴扎黑
巴扎黑original
2017-07-22 15:19:211626parcourir

Java est un langage de programmation utilisé par les programmeurs et les développeurs. De nombreux débutants se posent une question simple : comment définir des nombres aléatoires lors du développement à l'aide de Java ? Comment définir des nombres aléatoires en Java ? Il y a souvent des endroits où des nombres aléatoires doivent être utilisés. Ne vous inquiétez pas, jetons un coup d'œil au didacticiel détaillé sur la définition de nombres aléatoires en Java.

Comment définir des nombres aléatoires dans ava ?

1. Dans j2se, nous pouvons utiliser la méthode Math.random() pour générer un nombre aléatoire. Le nombre aléatoire généré est un double entre 0 et 1. Nous pouvons le multiplier par un certain nombre. Par exemple, multiplié par 100, c'est aléatoire dans la limite de 100, ce qui n'est pas disponible dans j2me.

2. Le package java.util fournit une classe Random. Nous pouvons créer un nouvel objet Random pour générer des nombres aléatoires, des flottants aléatoires, des doubles aléatoires et des longs aléatoires. une méthode d'obtention de nombres aléatoires que nous utilisons souvent dans les programmes j2me.

3. Il existe une méthode currentTimeMillis() dans notre classe System. Cette méthode renvoie un nombre de millisecondes depuis 0:00:00 le 1er janvier 1970 jusqu'à aujourd'hui. utilisez-le comme nombre aléatoire, nous pouvons l'utiliser pour modulo certains nombres, et nous pouvons le limiter à une plage

En fait, la troisième méthode ci-dessus est également utilisée dans la méthode de construction par défaut de Random Method. générer des nombres aléatoires

Il y a les instructions suivantes pour la classe Random dans la méthode 2 :

Il existe deux façons de construire la classe java.util.Random : avec et sans graines

Sans graines :

Cette méthode renverra des nombres aléatoires, et les résultats seront différents à chaque exécution

public class RandomTest {

public static void main( String[] args) {

java.util.Random r=new java.util.Random();

for(int i=0;i<10;i++){

System.out.println(r.nextInt());

}

}

Avec des graines :

Cette gentille méthode, quel que soit le nombre d'exécutions du programme, le résultat renvoyé est le même

public static void main(String[] args) {

java.util.Random r=new java.util .Random (10);

 for(int i=0;i<10;i++){

 System.out.println(r.nextInt());

 }

 }

La différence entre les deux méthodes est

(1) Ouvrez d'abord le Java Doc, nous verrons la description de la classe Random :

Ces instances de cette classe sont utilisées pour générer un flux de nombres pseudo-aléatoires. Cette classe utilise une graine de 48 bits, qui peut être modifiée à l'aide de la formule de congruence linéaire (voir The Art of Computer Programming, Volume 2, par Donald Knuth. , page 3.2.1 section).

Si vous créez deux instances Random avec la même graine et effectuez la même séquence d'appels de méthode à chaque instance, elles généreront et renverront la même séquence de nombres. Afin d'assurer la réalisation de cette fonctionnalité, nous spécifions un algorithme spécifique pour la classe Random. Pour une portabilité totale du code Java, les implémentations Java doivent faire en sorte que la classe Random utilise tous les algorithmes présentés ici. Mais les sous-classes de la classe Random sont autorisées à utiliser d’autres algorithmes, à condition qu’ils soient conformes au contrat général de toutes les méthodes.

Le Java Doc a expliqué très clairement la classe Random, et nos tests l'ont également vérifié.

 (2) Si aucun numéro de départ n'est fourni, le numéro de départ de l'instance aléatoire sera le nombre de millisecondes de l'heure actuelle. Le nombre de millisecondes de l'heure actuelle peut être obtenu via System.currentTimeMillis(. ). En ouvrant le code source du JDK, on ​​le voit très clairement.

/**

  * Crée un nouveau générateur de nombres aléatoires. Sa graine est initialisée à

  * une valeur basée sur l'heure actuelle :

  * Random() { this(System.currentTimeMillis()); }java.lang.System#currentTimeMillis()

  */

public Random() { this(System.currentTimeMillis()); }

De plus :

random Description des méthodes nextInt(), nextInt(int n) des objets :

int nextInt()

Renvoie le nombre pseudo-aléatoire suivant, qui est uniformément distribué dans la séquence de ce nombre aléatoire valeur int du générateur de nombres.

 int nextInt(int n)

Renvoie un nombre pseudo-aléatoire tiré de la séquence de ce générateur de nombres aléatoires entre 0 (inclus) et la valeur spécifiée (exclusive) de valeurs int uniformément distribuées.

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:
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
Article précédent:Programmation GUI en JavaArticle suivant:Programmation GUI en Java