2

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

例子

我有一个包含 17 个项目的列表。我想要的是把它分成4个像这样的子列表

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

我怎样才能做到这一点?我应该在这里使用什么算法?

4

2 回答 2

2

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

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

另一个例子:

  • 18 / 4 = 4- 所以会有 4 个组有 4 个元素。
  • 18 % 4 = 2- 所以前 2 个组将有一个额外的 1 个元素。
于 2012-06-12T08:01:21.370 回答
1

您想要的是原始列表的Power Set。检索幂集和相应属性的更通用方法在 Wikipedia 的 Power Set 页面中给出

于 2012-06-12T08:06:52.163 回答