问题标签 [powerset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
306 浏览

java - 借助位位置打印 PowerSet

谷歌搜索了一段时间以查找字符串的子集,我阅读了维基百科并提到

.....对于 S 的整个幂集,我们得到:

有没有一种可能的方法来通过程序实现这一点并避免使用字符串长度的递归算法?

到目前为止我所理解的是,对于一个长度的字符串n,我们可以运行 from 0to并为on2^n - 1打印字符。 我无法得到的是如何以最优化的方式将这些位映射到相应的字符

PS:检查过的线程,但无法理解这一点和 c++:由位生成的功率集

0 投票
1 回答
74 浏览

python - 返回包含所有元素的组合

我有一个列表说lis1 = [1,2,3] 和上面列表子集的列表说

我想生成 lis2 的所有组合,以便 lis1 的所有项目都应该出现在组合中。

例如。这是一个有效的组合

一种这样的组合是(其中包含ie的[[1,2],[2,3]]所有项目)lis1[1,2,3]

而这不是

我所做的是通过这个函数生成 lis2 的 powerset

但很明显,返回集包含类型的组合

如何检查包含 lis1 的所有项目的组合

0 投票
2 回答
613 浏览

recursion - Racket 如何定义像 Python 这样的递归生成器?

这是一种递归算法,用于产生集合的所有子集。等效的 Python 代码是:

结果:

这是我试过的球拍版本:

但它不起作用:

Racket文档中似乎没有相关示例是否可能,如何?

0 投票
1 回答
174 浏览

python - 单词组合...功率组?

我正在寻找破解我忘记的密码。我知道密码中可能使用的所有单词,但有些单词可能使用或不使用。示例:HarryMetSally 可能是密码,但我可能会使用“Harry”“Billy”“Sally”和“Met”的单词表来组合破解。

如果我有 16 个单词但可能使用了 14-16 个单词,我将如何在 C++ 或 Python 中编码以将 16 个单词(或 20、25、30 个单词)随机连接在一起并一次使用 1 个或 2-16 个一起使用而不是甚至相同的顺序。

例子:

话:哈利比利莎莉遇见

组合示例:

Harry Billy SallyBilly BillySally HarryMetSally HarrySallyMet

我已经广泛搜索了互联网并尝试了 Excel 论坛。有什么指导吗?

0 投票
3 回答
2331 浏览

c++ - 使用二进制计数来计算数组的所有子集

所以如果给我一个数组,比如

我们知道给定的子数组(包括不连续的)是(这代表幂集)

我也知道这些子集可以用二进制计数来表示

我知道这种方法可以以某种方式用于生成所有子集,但我不确定如何在 C++ 中实现

所以基本上我要问的是如何(如果可以的话)二进制计数用于生成功率组?

任何其他生成电源组的方法也非常感谢!

0 投票
2 回答
2687 浏览

c++ - C++中置换、组合和PowerSet的实现

我正在寻找使用 C++ 实现 Permutation、Combination 和 PowerSet

0 投票
0 回答
85 浏览

java - java中是否有任何实用程序可以从一组创建电源组?

我有一组 ={1,2,3,4}。我想创建这组的电源组。创建幂集的一种方法是将每个元素作为二进制(0/1)并打印所有可能的组合。

我正在考虑使用java中的一些实用程序/库来做同样的事情。

0 投票
1 回答
1941 浏览

c++ - 迭代计算集合或向量的幂集

虽然有很多关于如何生成集合的实际幂集的示例,但我找不到任何关于迭代(如std::iterator)生成幂集的信息。我会欣赏这种算法的原因是我的基集的大小。由于 n 元素集的幂集有 2^n 个元素,因此在实际计算该集时我会很快耗尽内存。那么,有没有办法为给定集合的幂集创建迭代器?甚至可能吗?

  • 如果它更容易,创建ints 集合的迭代器会很好 - 我可以将它们用作实际集合/向量的索引。
  • 当我实际工作时std::vector,如果需要,随机访问是可能的
0 投票
0 回答
174 浏览

sql - SQL 例程从具有父/子关系的数据生成 Powerset 值

我有一个要求,其中用户是用户将单个项目输入到表中,该表带有一个触发器,该触发器在表中创建有效的组合记录(即 Powerset 或子集)。我面临的挑战是记录可以具有父/子关系,并且在这种情况下,在 2^n 组值中存在无效的子集。

这是一个简化的例子。

数据:

期望的输出:

A
B
C
D
A,B
A,C
B,C
A,D
A,B,C
A,B,D
A,C,D
A,B,C,D

在我意识到数据将具有父/子关系之前,我将使用以下代码:

但是通过这个公用表表达式,我得到了所有 15 种可能的组合,而不仅仅是 12 种有效/所需的组合。

我是一名新手 SQL 程序员,我一直试图找出一个多星期的解决方案,但绝对没有成功。任何帮助将不胜感激(即使它告诉我这是一项不可能完成的任务)。希望我提供了足够的信息,有人可以帮助我。

0 投票
2 回答
231 浏览

algorithm - 将项目分组为子集(幂集)

假设我有以下内容:

或稍微重新格式化,以便您可以轻松查看分组:

生成以下分组的最常见或最有效的算法是什么?

快速谷歌搜索后,上面的键似乎代表“电源设置”。所以我计划使用以下 impl:

1) 生成幂集 {{j, b, m}, {j, m}, {j, b} {b, m}, {m}, {j}, {b}} // j = john, b = 鲍勃,米 = 玛丽

2) 生成所有字母的集合:{a, b, c, d, e, f}

3) 遍历子集,对于每个字母,查看字母是否存在于子集的所有元素中

所以...

有更好的解决方案吗?

编辑:上述算法有缺陷。例如,{j, m} 也会包含“a”,这是我不想要的。我想我可以简单地修改它,以便在每次迭代中,我还检查这个字母是否“不在”这个集合中的元素。所以在这种情况下,我还会检查: