Sélection aléatoire pondérée avec et sans remplacement
En réponse à un défi de programmation, nous recherchons des algorithmes efficaces de sélection aléatoire pondérée à partir d'une liste, à la fois avec et sans remplacement.
Sélection pondérée avec remplacement
Une méthode efficace pour la sélection pondérée avec remplacement est la Méthode d'alias. Cette technique crée un ensemble de compartiments de taille égale pour chaque élément pondéré. En utilisant des opérations sur bits, nous pouvons indexer efficacement ces bacs sans recourir à la recherche binaire. Chaque bac stocke un pourcentage unique représentant la limite entre les éléments pondérés d'origine.
Prenons l'exemple de cinq éléments de poids égaux : (a, b, c, d, e).
Mise en œuvre de la méthode d'alias
Répétez les étapes suivantes jusqu'à ce que tous les poids soient distribués :
Pour notre exemple, après plusieurs itérations, nous avons la partition suivante :
Sélection d'exécution
Sélection pondérée sans remplacement
Alors que les algorithmes comme la méthode du réservoir pondéré existe pour une sélection non pondérée sans remplacement, ce problème reste non résolu.
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!