我有一个列表,我想将其拆分为包含 +/- 1 个项目的子列表。
例子
我有一个包含 17 个项目的列表。我想要的是把它分成4个像这样的子列表
1.List = 5 elements
2.List = 4 elements
3.List = 4 elements
4.List = 4 elements
我怎样才能做到这一点?我应该在这里使用什么算法?
我有一个列表,我想将其拆分为包含 +/- 1 个项目的子列表。
例子
我有一个包含 17 个项目的列表。我想要的是把它分成4个像这样的子列表
1.List = 5 elements
2.List = 4 elements
3.List = 4 elements
4.List = 4 elements
我怎样才能做到这一点?我应该在这里使用什么算法?
使用整数除法得到每个组中的项目,然后使用模除法得到前 n 组将有 +1 项目的数量。例如:17 项分为 4 组:
17 / 4 = 4
- 所以会有 4 个组有 4 个元素。17 % 4 = 1
- 所以前 1 个组将有一个额外的 1 个元素。另一个例子:
18 / 4 = 4
- 所以会有 4 个组有 4 个元素。18 % 4 = 2
- 所以前 2 个组将有一个额外的 1 个元素。您想要的是原始列表的Power Set。检索幂集和相应属性的更通用方法在 Wikipedia 的 Power Set 页面中给出