Maison > Java > javaDidacticiel > Comment puis-je générer des entiers aléatoires dans n'importe quelle plage à l'aide de Math.random() ?

Comment puis-je générer des entiers aléatoires dans n'importe quelle plage à l'aide de Math.random() ?

Linda Hamilton
Libérer: 2024-12-05 12:55:13
original
753 Les gens l'ont consulté

How Can I Generate Random Integers Within Any Range Using Math.random()?

Math.random() Beyond Zero to One

Math.random() est une méthode polyvalente qui génère des nombres aléatoires entre zéro et un . Cet article explore comment exploiter la puissance de Math.random() pour générer des entiers aléatoires dans des plages arbitraires.

Générer des entiers aléatoires

Pendant que Math.random() génère nombres à virgule flottante compris entre 0 et 1, il est possible de l'utiliser pour produire des entiers aléatoires dans une plage spécifique. Pour ce faire, multipliez le résultat de Math.random() par la plage souhaitée et ajoutez la valeur minimale de la plage.

Par exemple, pour générer un entier compris entre zéro et cent, utilisez la formule suivante :

(int) Math.floor(Math.random() * 101)
Copier après la connexion

De même, pour générer un entier compris entre un et cent, utilisez :

(int) Math.ceil(Math.random() * 100)
Copier après la connexion

Génération aléatoire Entiers dans une plage arbitraire

Pour plus de flexibilité, il est possible de définir une fonction qui calcule des entiers aléatoires dans une plage spécifiée. Le code suivant y parvient :

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

Cette fonction prend deux arguments, min et max, représentant les limites inférieure et supérieure de la plage souhaitée. Il calcule la plage comme la différence entre max et min plus un et génère un nombre aléatoire dans cette plage à l'aide de Math.random(). Le nombre aléatoire est ensuite compensé par la valeur minimale pour produire un entier dans la plage spécifiée.

Par exemple, le code suivant génère un entier aléatoire compris entre trois et cinq :

randomWithRange(3, 5)
Copier après la connexion

Nombres aléatoires double précision

La même technique peut être appliquée pour générer des nombres aléatoires double précision dans un délai spécifié plage :

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

Gestion des entrées non valides

Pour éviter les erreurs lorsque la plage fournie n'est pas valide (par exemple, min > max), les fonctions peuvent être modifiées pour tenir compte de telles situations :

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

double randomWithRange(double min, double max) {
   double range = Math.abs(max - min);     
   return (Math.random() * range) + (min <= max ? min : max);
}
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