【发布时间】:2016-11-26 07:04:05
【问题描述】:
我有K=2 和N=3,我生成的所有组合如下:
list(itertools.product(range(1, N+1), repeat=K))
我明白了
[(1, 1),
(1, 2),
(1, 3),
(2, 1),
(2, 2),
(2, 3),
(3, 1),
(3, 2),
(3, 3)]
我需要对这些组合进行排序得到
[(1, 1),
(2, 2),
(3, 3),
(1, 2),
(1, 3),
(2, 1),
(2, 3),
(3, 1),
(3, 2)]
对于一般的K 和N,我该怎么做?
这就像拥有N 箱和K 物品,我想生成所有可能的物品分配到箱,但从
- 所有项目分配到 bin 1,然后是 bin 2,等等。
- K-1 件物品分配到箱 1,一件物品分配到箱 2,等等。
- ...
所以在示例中,(1, 1) 表示所有项目都在 bin 1 中,(2, 2) 表示所有项目都在 bin 2 中,以此类推。(1, 2) 表示项目 1 在 bin 1 中,项目 2 在 bin 中2等。
【问题讨论】:
标签: python combinations