使用0来显示不存在元素的集合的子集
Displaying subsets of a set using 0 for absent elements
我想用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位数字的二进制表示。因此,您正在递增这个数字,并将其用作应用于1 2 3 4
的掩码。我希望你不要让我们为你写所有的代码。如果有什么不清楚的地方,可以随意询问。
实际上,这是一件相当简单的事情:
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;
}
}
相关文章:
- 处理多个异常集合的C++方法
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 如何将ampl中的集合表示为c++中的向量
- 显示字符串的集合和子集
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 打印给定大小的集合的所有子集并计算子集
- 给定一组正整数 <=k 及其 n 个子集,找到哪些子集对给出原始集合的并集
- (也许是NP-Hard)求一个集合的子集总数,使得每个子集在与其所有元素相乘时的值都大于X
- 如何生成集合的所有唯一子集
- 动态规划:计算集合中存在多少个升序子集
- 递归函数,用于使用位掩码 c++ 显示集合的所有子集
- 拘泥于处理(数学)集合和子集的练习
- 生成给定集合的子集(使用递归)的程序的执行涉及哪些步骤
- 用于访问集合c++的排序子集的数据结构
- 一个多索引,其中一个索引是整个集合的子集
- 从一组集合中找到集合子集的最佳方法
- 使用0来显示不存在元素的集合的子集
- 从一个集合生成所有可能的有序子集
- 如何将一个集合分成K个子集,使得子集中元素的和最小
- 生成一个集合的所有子集,使它们的集合等于整个集合