Sélection aléatoire pondérée : surmonter les limitations de remplacement
Récemment, de nombreux développeurs ont rencontré le défi de la sélection aléatoire pondérée d'éléments dans une liste, à la fois avec et sans remplacement. Bien qu'il existe des algorithmes efficaces pour la sélection non pondérée et la sélection pondérée sans remplacement, trouver une solution appropriée pour la sélection pondérée avec remplacement s'est avéré difficile.
Une approche innovante qui permet d'atteindre l'efficacité et la simplicité est la méthode des alias. Cela fonctionne en créant des bacs de taille égale pour la liste pondérée. Ces compartiments sont indexés efficacement à l'aide d'opérations sur bits, évitant ainsi les recherches binaires fastidieuses.
Pour former la table de recherche d'alias :
Répétez les étapes 3 et 4 jusqu'à ce que tout le poids d'origine soit attribué.
Pendant runtime :
Cette méthode gère efficacement le nombre aléatoire pondéré sélection avec remplacement, offrant une amélioration significative des performances par rapport aux approches basées sur un réservoir, en particulier lors de la sélection d'une grande partie d'une liste.
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!