いくつかのブール変数があり、変数と同じ「順序」で値テーブルを変更したいと考えています。
for example: 2^2 = 4 combinations
0,0 = A
0,1 = B
1,0 = C
1,1 = D
Now I swap x_1 with x_2 and end up with
0,0 = A
0,1 = C
1,0 = B
1,1 = D
値テーブル「ソート済み」を返す関数を探しています。値の順列が与えられます。
1 つの方法は、ビットのすべての組み合わせをループし、並べ替えられた状態に変換することです。しかし、どうすればc++でそれを行うことができますか?
たとえば、注文がある場合は、(3,2,1)
それに x_1,x_2_x_3 = 0,1,1
順列し1,1,0
ます
sorted_table[sort(0,1,1)] = sorted_table[6] = old_table[3]
これを本当に速く行う方法はありますか?バイナリ ベクトルを操作できると思いますが、遅いようですか?