【发布时间】:2017-09-22 15:40:43
【问题描述】:
给定一个包含 M 个 1 的集合 S(M),计算所有非空子集的集合,使得每个集合的并集生成 S(M)。子集的基数也可以是 K,其中 1
S(M) = {1,1,1,1}, K = 2.
possible collections can be
{{1,1},{1,1}},
{1},{1},{1,1}},
{{1,1},{1},{1}}
我已经看过几个答案,但我相信它们与我的不同。
我还阅读了Stirling number of second kind,但我仍然希望将子集的基数条件合并到该公式中。
我编写了一个可能的递归解决方案,但它不适用于较大的 M 值。
如果有人需要更多信息,请告诉我。
任何帮助或指导将不胜感激。
问候
阿杰
【问题讨论】:
-
你的意思是_multi_sets?为什么 {{1},{1},{1,1}} 和 {{1,1},{1},{1}} 被认为是不同的?
-
在这种情况下,位置很重要。
-
那么听起来所有元素都是1的事实是无关紧要的。使它们不同可以消除多重集合的复杂性,如果我理解正确的话,可以消除“位置”的复杂性。
-
我没明白你的意思。如果我们写出两个子集的基数,那么它将是 {1,1,2} 和 {2,1,1}。对于这种情况,我相信我可以使用排列和组合来获得 {1,1,2} 的所有组合数,即 3。另外,如果您知道任何可以通过考虑 {{1} 来解决问题的解决方案,{ 1},{1,1}} 和 {{1,1},{1},{1}} 相同,请告诉我。
-
我可能仍然不明白您要解决的确切问题。你能编辑使用最严格的术语(set/multiset/sequence/...?),特别是进一步解释 K 的作用吗?
标签: set subset combinations