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)
De même, pour générer un entier compris entre un et cent, utilisez :
(int) Math.ceil(Math.random() * 100)
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; }
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)
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; }
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); }
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!