【问题标题】:Algorithm to find the set when the set of sums of subsets of power set is given给定幂集子集和的集合时求集合的算法
【发布时间】:2018-09-03 11:33:47
【问题描述】:

N 的集合A 正数,形成了集合A 所有可能子集Sum 集合,并且给定的。我们必须找到集合A

我的方法是先排序,然后不断地从最大数中提取Nth 最大数以找到集合的元素。这种方法有什么问题

【问题讨论】:

  • 我的做法是先排序,然后不断从最大数中抽取第N大数,找出集合中的元素。这种方法有什么问题
  • 如果 set 是 {1,2,3}: powerset {1,2,3,4,5,6} 会给出什么? {1,2,3,3,4,5,6}?
  • 否,P({1,2,3}) = {0, {1}, {2}, {3}, {1,2}, {1,3}, {2 ,3}, {1,2,3}} 和集合是 {0,1,2,3,3,4,5,6}
  • 举例说明这个算法的输入和输出。
  • 我会从小到大:和集中的最小数字(删除 0 之后)将是 A 的元素。一旦你找到这样一个元素,删除它和你可以用它形成的所有可能的总和,以及从总和集中找到的所有元素,然后重复。

标签: algorithm sorting


【解决方案1】:

考虑元素集合为{a,b,c,d},在这种情况下,集合的可能子集总和将是(1){a}, (2){b+c}、(3){b+c+d}、(4){a+b+c+d} 等等。然而,最大的子集总和将是 (4) 并且可见,(4) - (2) 的减法将产生 {a+d} 这只是集合的另一个子集总和,而不是实际元素.

解决该问题的一种可能方法是对数组进行排序,然后开始从麻袋中最小的元素中挑选元素。每次我们选择一个新元素时,我们都会计算所有可能的子集总和,这些总和总是包括这个元素和我们维护的 sack 中的其他元素,然后从给定的子集总和列表中删除这些计算的子集总和。然后我们继续从给定的子集列表中拾取下一个尚未删除的最小元素。

编辑:为给定问题添加了可能的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2012-08-09
    • 1970-01-01
    相关资源
    最近更新 更多