如何拆分列表以获取其元素的幂集?

时间:2012-06-12 07:59:23

标签: algorithm partitioning powerset

我有一个列表,我想将其拆分为带有+/- 1项的子列表。

示例

我有一个包含17个项目的列表。我想要的是将它分成4个子列表,如这些

1.List = 5 elements
2.List = 4 elements
3.List = 4 elements
4.List = 4 elements

我该怎么做?我应该在这里使用什么算法?

2 个答案:

答案 0 :(得分:2)

使用整数除法来获取每个组中的项目,然后使用模块划分来获得将具有+1项目的前n个组的数量。例如: 17个项目分为4组:

  • 17 / 4 = 4 - 所以将有4个组有4个元素。
  • 17 % 4 = 1 - 所以前1组将有一个额外的1个元素。

另一个例子:

  • 18 / 4 = 4 - 所以将有4个组有4个元素。
  • 18 % 4 = 2 - 所以前两组将有一个额外的1个元素。

答案 1 :(得分:1)

您想要的是原始列表的电源设置。在Power Set page at Wikipedia

中给出了检索幂集和相应属性的更通用的方法