Maison > Java > javaDidacticiel > Comment générer des entiers aléatoires (et des doubles) dans une plage spécifique en Java ?

Comment générer des entiers aléatoires (et des doubles) dans une plage spécifique en Java ?

Linda Hamilton
Libérer: 2024-12-04 19:53:11
original
410 Les gens l'ont consulté

How to Generate Random Integers (and Doubles) Within a Specific Range in Java?

Manipulation Math.random() : génération d'entiers aléatoires dans une plage spécifiée

La fonction Java Math.random() génère des nombres aléatoires dans la plage [0, 1). Cependant, il existe des situations dans lesquelles vous devrez peut-être obtenir des entiers aléatoires dans une plage spécifique. Cet article montre comment y parvenir en utilisant Math.random().

Intention de générer un entier aléatoire entre trois et cinq

Alors que l'instruction "(int) Math .random() * 5 3" ne génère pas correctement des entiers aléatoires dans la plage [3, 5], cela peut être corrigé à l'aide d'un paramètre personnalisé méthode :

int randomWithRange(int min, int max) {
    int range = (max - min) + 1;
    return (int) (Math.random() * range) + min;
}
Copier après la connexion

Cette méthode calcule la plage de valeurs possibles, la multiplie par Math.random() et ajoute la valeur minimale pour garantir l'inclusivité.

Exemple de sortie

System.out.println(randomWithRange(3, 5));
// Output: 3
Copier après la connexion

Protection contre les idiots en cas d'erreur Commande

Pour éviter les erreurs si min est supérieur à max, une méthode mise à jour est :

int randomWithRange(int min, int max) {
    int range = Math.abs(max - min) + 1;
    return (int) (Math.random() * range) + (min <= max ? min : max);
}
Copier après la connexion

Extensions pour la génération de nombres aléatoires doubles

Une méthode similaire peut être utilisée pour générer des nombres aléatoires en double précision :

double randomWithRange(double min, double max) {
    double range = (max - min);
    return (Math.random() * range) + min;
}
Copier après la connexion

En utilisant ceci méthode :

System.out.println(randomWithRange(3.0, 5.0));
Copier après la connexion

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal