-6

我想用 C++ 编写一个算法。假设我们有 x={1,2,3,4}。然后结果:

1 2 3 0
1 2 0 4
1 0 3 4
0 2 3 4
1 2 0 0
1 0 3 0
0 2 3 0
1 0 0 4
...
0 2 0 0
1 0 0 0

任何帮助将不胜感激。

4

2 回答 2

3

您可以使用 4 位数字的二进制表示。因此,您要增加此数字并将其用作要应用于1 2 3 4. 我希望您不希望我们为您编写所有代码。如果有不清楚的地方,请随时询问。

于 2013-07-03T10:15:59.677 回答
0

其实这是一件相当简单的事情:

std::vector<int> x; 
/* set x to { 1,2,3,4 } */

std::vector<int> temp(x.size());
byte mask = 0;
for(int i = 0; i < (int)pow(2, x.size()); ++i)
{
   for(int j = 0; j < x.length(); ++j)
   {
       mask = ; // this is the tricky part, set it to bit j of i
       temp.at(j) = x.at(j) * mask;
   }
}
于 2013-07-03T10:17:53.023 回答