1
k組み合わせの高速インデックス作成
少し前に取り組んでいた古い問題を再検討しています。 典型的なシナリオは、「8ビット整数内に3ビットが設定されている」、つまり00000111です。 ネストされたループによって、3セットのビットを持つすべての一意の組み合わせを(順番に)簡単に生成できます。私が興味を持っているのは、マッピングインデックス<->の組み合わせです。つまり、「00001011」が2番目の組み合わせ(またはゼロベースのインデックスでは値「1」)になります。 これまでのところ、すべての組み合わせを実行してテーブルに格納し、ルックアップインデックス->会話をO(1)操作にしました。もう一方の方向はO(ln(n))で、二分探索です。 ただし、欠点は、ドメインを増やすと、これが実行可能でないポイントまで、明らかにメモリに負荷がかかることです。 n番目の組み合わせまたは特定の組み合わせのインデックスを計算する簡単な方法は何ですか?組み合わせの順序はいいでしょうが、必須ではありません。