鉴于15名球员 - 2名守门员,5名后卫,5名中场球员和3名前锋,以及每名球员都有价值和得分的事实,我想计算得分最高的球队.每个团队必须包含1个GK,然后是一个阵型,例如4:4:2,4:3:3等.我开始使用这样的样本数据
球员角色成本
然后,我做了以下评估所有组合
将每一行读入一个列表(对于每个角色),然后在嵌套运行中使用itertools来获取所有组合
if line[1] == "G": G.append(line[0])
if line[1] == "D": D.append(line[0])
if line[1] == "M": M.append(line[0])
if line[1] == "S": S.append(line[0])
for gk in itertools.combinations(G,1):
for de in itertools.combinations(D,4):
for mi in itertools.combinations(M,4):
for st in itertools.combinations(S,2):
teams[str(count)]= " ".join(gk)+" "+" ".join(de)+" "+" ".join(mi)+" "+" ".join(st)
count +=1
Run Code Online (Sandbox Code Playgroud)
有了团队,我计算他们的积分值和团队成本.如果它低于阈值,我打印它.
但如果我现在让这20名守门员,150名防守球员,150名中场球员和100名前锋,我可以理解为失去记忆.
我该怎么做才能进行这种分析?它是一个生成器而不是我需要的递归函数吗?
非常感谢