Maison  >  Article  >  Java  >  Comment générer des doubles aléatoires précis dans une plage spécifiée ?

Comment générer des doubles aléatoires précis dans une plage spécifiée ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-26 06:44:02376parcourir

How to Generate Precise Random Doubles Within a Specified Range?

Générer avec précision des doubles aléatoires dans une plage spécifiée

Lorsque vous travaillez avec des nombres aléatoires en programmation, il est souvent nécessaire de générer des valeurs dans une plage spécifique gamme. Ce défi se pose lorsqu'il s'agit de deux valeurs doubles, représentées par min et max, et de la nécessité de créer un double aléatoire entre elles à l'aide d'un générateur aléatoire.

La méthode conventionnelle nextDouble() de la classe Random fournit des valeurs aléatoires. entre 0,0 et 1,0 mais n'a pas la possibilité de spécifier une plage personnalisée. Pour résoudre ce problème, une approche plus précise est nécessaire.

La solution consiste à utiliser une formule qui combine les valeurs rangeMin et rangeMax avec la valeur aléatoire générée par nextDouble(). La ligne de code suivante illustre cette formule :

<code class="java">double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();</code>

Décomposition de cette formule :

  • rangeMin : la valeur minimale de la plage souhaitée.
  • rangeMax : La valeur maximale de la plage souhaitée.
  • r.nextDouble() : Une valeur aléatoire comprise entre 0,0 et 1,0 générée par l'objet Random r.
  • La multiplication (rangeMax - rangeMin) élargit la plage de la valeur générée entre 0,0 et (rangeMax - rangeMin).
  • L'ajout de rangeMin décale la plage étendue pour commencer à partir de rangeMin au lieu de 0,0.

En suivant cette approche, un une valeur double aléatoire peut être générée dans la plage spécifiée définie par min et max. Cette technique offre un meilleur contrôle sur la précision et la plage des nombres aléatoires générés lors de la programmation.

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