ホームページ > バックエンド開発 > C++ > 順列と組み合わせを生成するための最速の C ライブラリは何ですか?

順列と組み合わせを生成するための最速の C ライブラリは何ですか?

DDD
リリース: 2024-12-01 06:53:10
オリジナル
246 人が閲覧しました

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

C の順列と組み合わせのためのライブラリ関数

質問:

最も重要なものは何ですか? n のセットから k 要素のすべての組み合わせと順列を生成するために頻繁に使用される C ライブラリ要素?

答え:

いくつかの C ライブラリは、順列と組み合わせを計算する関数を提供します。ただし、Charles Bailey が実施した分析に基づくと、次のオプションが際立っています:

  • ソリューション C: N2639 論文から派生したこのアルゴリズムは、各組み合わせを訪問して効率的に実行されます。 85.3531 ns で。
  • ソリューション D:参照ソリューションの for_each_combination 関数はパフォーマンスに優れており、各組み合わせにわずか 6.62765 ナノ秒でアクセスするため、ソリューション C よりも 12 倍以上、ソリューション B よりも 9000 倍以上高速です。

注:

提供されたベンチマークは 2.8 GHz Intel Core で実施されましたi5 では、clang -O3 を使用し、一度に 5 つずつ取得した 100 個の要素の順列を生成するパフォーマンスを測定しました (その結果、合計 7,500 万以上の組み合わせが生成されました)。

ソリューション C および D はソリューション A と類似点を共有していますが、ソリューション A と類似点はありませんが、解決策 A で無限ループの問題が見つかり、正確な結果が得られました。ソリューション D は、Charles Bailey がすべての組み合わせを訪問することで知られている最も効率的なアルゴリズムとして際立っています。

以上が順列と組み合わせを生成するための最速の C ライブラリは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート