Maison > Java > javaDidacticiel > le corps du texte

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

青灯夜游
Libérer: 2018-11-22 09:18:30
original
58043 Les gens l'ont consulté

Comment générer des nombres aléatoires en Java ? Cet article vous présentera comment générer des nombres aléatoires en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

Java propose trois façons de générer des nombres aléatoires à l'aide de certaines méthodes et classes intégrées, comme suit :

1 classe java.util.Random

2, Math. méthode aléatoire : peut générer des nombres aléatoires de type double.

3. Classe ThreadLocalRandom

Voyons comment Java implémente la génération de nombres aléatoires.

1. Classe java.util.Random

Classes de la bibliothèque de classes utilitaires Java : java.util.Random fournit des méthodes pour générer différents types de nombres aléatoires.

Pour générer des nombres aléatoires à l'aide de la classe java.util.Random, nous devons d'abord créer une instance de cette classe, puis utiliser cette instance pour appeler des méthodes comme nextInt(), nextDouble(), nextLong(), etc. .

Nous pouvons utiliser la classe java.util.Random pour générer aléatoirement : des nombres aléatoires d'entiers, des nombres à virgule flottante, des nombres double précision, des entiers longs, des opérandes booléens et d'autres types.

Nous pouvons transmettre des paramètres à la méthode pour fixer une limite supérieure à la plage de nombres à générer. Par exemple, nextInt(6) générera un nombre compris entre 0 et 5 inclus.

// 随机数生成
// 使用java.util.Random; 
import java.util.Random; 

public class generateRandom{ 

	public static void main(String args[]) 
	{ 
		// 创建随机类的实例
		Random rand = new Random(); 

		// 在0到999范围内生成随机整数
		int rand_int1 = rand.nextInt(1000); 
		int rand_int2 = rand.nextInt(1000); 

		// 输出随机整数
		System.out.println("随机整数: "+rand_int1); 
		System.out.println("随机整数: "+rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = rand.nextDouble(); 
		double rand_dub2 = rand.nextDouble(); 

		// 输出随机双精度数
		System.out.println("随机双精度数: "+rand_dub1); 
		System.out.println("随机双精度数: "+rand_dub2); 
	} 
}
Copier après la connexion

Exécuter la sortie :

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

2. Méthode Math.random

Cours de mathématiques. Contient diverses méthodes pour effectuer diverses opérations numériques, telles que l'exponentiation, les logarithmes, etc. L'une de ces méthodes : random(), peut renvoyer un nombre double avec un signe positif. La valeur est supérieure ou égale à 0,0 et inférieure à 1,0, c'est-à-dire que la plage de valeurs est l'intervalle fermé à gauche et ouvert à droite. [0,0, 1,0).

La valeur renvoyée par la méthode random() est sélectionnée de manière pseudo-aléatoire et (approximativement) uniformément distribuée dans la plage de [0.0, 1.0).

Remarque : il ne peut générer que des nombres aléatoires de type double.

Ci-dessous, nous expliquerons comment utiliser cette méthode pour générer des nombres aléatoires via du code Java :

// Math.random() 生成随机数
import java.util.*; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 随机双精度数的生成
		System.out.println("随机双精度数: " + Math.random()); 
		System.out.println("随机双精度数: " + Math.random()); 
	} 
}
Copier après la connexion

Résultats d'exécution :

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

3. Classe java.util.concurrent.ThreadLocalRandom

La classe ThreadLocalRandom a été introduite dans Java 1.7, qui permet la génération simultanée de nombres aléatoires et peut résoudre la concurrence entre plusieurs threads. Des nombres aléatoires de types entiers, double précision, booléens et autres peuvent être générés.

Les principaux détails d'implémentation de ThreadLocalRandom :

1), utilisez un long ordinaire au lieu d'utiliser AtomicLong dans Random comme graine

2), vous ne pouvez pas créer d'instance ThreadLocalRandom vous-même, parce que son constructeur est privé, nous pouvons utiliser sa méthode statique ThreadLocalRandom.current()

3), il prend en charge le cache CPU, utilisant 8 longs champs virtuels pour remplir la ligne de cache haute vitesse L1 64 bits

Ci-dessous, nous expliquerons comment utiliser cette classe pour générer des nombres aléatoires via un simple code Java :

// 随机数的产生
// 使用java.util.concurrent.ThreadLocalRandom类
import java.util.concurrent.ThreadLocalRandom; 

public class generateRandom 
{ 
	public static void main(String args[]) 
	{ 
		// 在0到999范围内生成随机整数
		int rand_int1 = ThreadLocalRandom.current().nextInt(); 
		int rand_int2 = ThreadLocalRandom.current().nextInt(); 

		// 输出随机整数
		System.out.println("Random Integers: " + rand_int1); 
		System.out.println("Random Integers: " + rand_int2); 

		// 生成随机双精度数
		double rand_dub1 = ThreadLocalRandom.current().nextDouble(); 
		double rand_dub2 = ThreadLocalRandom.current().nextDouble(); 

		// 输出随机双精度数
		System.out.println("Random Doubles: " + rand_dub1); 
		System.out.println("Random Doubles: " + rand_dub2); 

		// 生成随机布尔值
		boolean rand_bool1 = ThreadLocalRandom.current().nextBoolean(); 
		boolean rand_bool2 = ThreadLocalRandom.current().nextBoolean(); 

		// 输出随机布尔值
		System.out.println("Random Booleans: " + rand_bool1); 
		System.out.println("Random Booleans: " + rand_bool2); 
	} 
}
Copier après la connexion

Exécuter la sortie :

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

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun. Pour plus de didacticiels vidéo connexes, veuillez visiter : Tutoriel Java !

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