问题来了: 假设有 9 个不同的物体,找出将其分成 2、3、4 组的所有方法。
在数学上,除法的总数可以表示为9!/2!3!4!
这是我试过的,
import itertools
def multiCoef(seta, n1, n2):
seta = set(seta)
for comba in itertools.combinations(seta, n1):
comba = set(comba)
for combb in itertools.combinations(seta-comba, n2):
combb = set(combb)
yield comba, combb, seta-comba-combb
你可以用这样的东西试试,它运行得很好:
>>> y = multiCoef(x, 2, 3)
>>> for i in y: print i
但是一旦组数变大,这种方法就会变得很麻烦。有没有更好的办法?
请您参考如下方法:
参见 itertools。
