Maison > développement back-end > C++ > Quelle est la bibliothèque C la plus rapide pour générer des permutations et des combinaisons ?

Quelle est la bibliothèque C la plus rapide pour générer des permutations et des combinaisons ?

DDD
Libérer: 2024-12-01 06:53:10
original
246 Les gens l'ont consulté

What's the Fastest C   Library for Generating Permutations and Combinations?

Fonction de bibliothèque pour la permutation et la combinaison en C

Question :

Quel est le plus Bibliothèque C fréquemment utilisée pour générer toutes les combinaisons et permutations de k éléments à partir d'un ensemble de n éléments ?

Réponse :

Plusieurs bibliothèques C fournissent des fonctions permettant de calculer des permutations et des combinaisons. Cependant, sur la base de l'analyse menée par Charles Bailey, les options suivantes se démarquent :

  • Solution C : Cet algorithme, dérivé de l'article N2639, fonctionne efficacement, visitant chaque combinaison en 85.3531 ns.
  • Solution D : La fonction for_each_combination du La solution référencée excelle en termes de performances, visitant chaque combinaison en seulement 6,62765 ns, ce qui la rend plus de 12 fois plus rapide que la solution C et plus de 9 000 fois plus rapide que la solution B.

Remarque :

Les tests fournis ont été effectués sur un Intel Core i5 à 2,8 GHz à l'aide de clang -O3 et ont mesuré les performances de génération permutations de 100 éléments pris 5 à la fois (ce qui donne plus de 75 millions de combinaisons au total).

Bien que les solutions C et D partagent des similitudes avec la solution A, elles évitent le problème de boucle infinie trouvé dans la solution A, ce qui donne des résultats précis. résultats. La solution D s'impose comme l'algorithme le plus efficace connu de Charles Bailey pour visiter toutes les combinaisons.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal