如何以k种不同的方式组合n个元素



例如,12个球和3个盒子,如何使用所有球将列表添加到所有组合中。例如n是12,k是3:

- (12,0,0)
- (0,12,0)
- (0,0,12)
- (0,1,11)
- (0,11,1)
- (11,1,0)
- (11,0,1)
- (10,1,1)...

Python、c#、Java。。。这三种语言中的一种​​对我来说太好了。

编辑:这不是家庭作业。此算法稍后将用于分配。

lst, cnt = [], 0
for i in range(13):
for j in range(13 - i):
lst.append((i, j, 12 - j - i))
cnt += 1
print(*lst, sep='n')
print(f'combinations = {cnt}')
(0, 0, 12)
(0, 1, 11)
(0, 2, 10)
(0, 3, 9)
(0, 4, 8)
(0, 5, 7)
(0, 6, 6)
...
(11, 0, 1)
(11, 1, 0)
(12, 0, 0)
combinations = 91

最新更新