Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je implémenter la sélection aléatoire pondérée en Java ?

Susan Sarandon
Libérer: 2024-11-06 19:58:03
original
643 Les gens l'ont consulté

How can I implement Weighted Random Selection in Java?

Sélection aléatoire pondérée en Java

Lors de la sélection d'un élément aléatoire dans un ensemble, il est souvent souhaitable de biaiser la sélection vers des éléments avec une association plus élevée poids. En Java, cela peut être réalisé à l'aide d'un NavigableMap, une structure de données spécialisée spécialement conçue à cet effet.

La classe RandomCollection, implémentée à l'aide d'un NavigableMap, permet d'ajouter des éléments pondérés et récupère des éléments aléatoires en fonction de leurs valeurs respectives. poids. Pour créer une RandomCollection, spécifiez simplement un générateur aléatoire (facultatif, ou utilisez le Random par défaut).

L'ajout d'éléments à la RandomCollection est simple. Chaque élément est associé à un poids, qui représente sa probabilité d'être sélectionné. Le poids total est maintenu au fur et à mesure que de nouveaux articles sont ajoutés.

Pour sélectionner un article aléatoire, un nombre aléatoire entre 0 et le poids total est généré. La méthode upperEntry() de NavigableMap est ensuite utilisée pour récupérer la première entrée avec un poids supérieur au nombre aléatoire. La valeur associée à cette entrée est l'élément sélectionné aléatoirement.

Exemple :

Ce code générera une séquence aléatoire d'animaux ("chien", "chat", "cheval" ) pondérés selon leurs probabilités.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!