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!