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
376 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!

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
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