我有一些布尔变量,并希望以与变量相同的“顺序”更改值表。
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
我正在寻找一个返回值表“排序”的函数。给定值的排列顺序。
一种方法是循环遍历所有位组合并将它们转换为置换状态。但是我怎么能在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]
任何想法如何真正快速地做到这一点?我想我可以操纵一些二进制向量,但这似乎很慢?