4

私は、等辺二分割アルゴリズムのバイナリ表現を実装しています.1と0が等しい(N/2)Nビットのすべての組み合わせを反復する最良の方法は何だろうと思っています. コーディングが最も簡単ではなく、最も簡単な方法を見つけようとしています。ありがとう。

4

1 に答える 1

2

それはただ(N choose N/2)です; どのビットが 0 かを選択し、残りは 1 です。

10 ビットがあり、5 つのゼロと 5 つの 1 が必要な場合、(10 choose 5) = 252可能性があります。


以下も参照してください。


指摘されているように、この数は二項係数(n k)です。kn/2この係数が最大のときです。多数の可能性があることを認識していると思います。そのため、それらを生成する最速のアルゴリズムが必要でした。

このジェネレーターを可能な限り高速にするためにマイクロ最適化する代わりに、最初に他のすべてのオプションを使い果たします。すべての可能性を試すよりも良いことはありませんか? このブルート フォース ソリューションはスケーリングしません。

可能であれば、より良いアルゴリズムを見つけるようにしてください。

于 2010-04-14T05:09:53.820 に答える