问题描述
给出N个元素的列表,例如
mylist = [0,1,2,3,4,5,6,7]
我想找到L个群组中K个元素的所有组合,例如对于K=4
,L=2
,
结果将为
L=0 L=1
1) [0,3] [4,7]
2) [0,4] [3,7]
3) [0,5] [3,7]
... etc...
69) [4,7] [0,3]
请注意,[0,3]
和[0,2]
将被视为第一组的相同组合。
对于L=2
,我正在使用以下
from itertools import combinations
N = 8
M = 4
L = N // M
combs = list(combinations(range(N),M))
allidx = list(range(N))
for c,comb in enumerate(combs):
idx1 = list(comb)
idx2 = list(set(allidx) - set(idx1))
print(c,idx1,'\t',idx2)
首先,这种“组合”的数学定义是什么?
第二,在L>2
的情况下,有一种比计算所有排列并在之后修剪它们更有效的方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)