[问题]新手请教更好写法

楼主: zz860619 (Kukuboo)   2018-11-29 21:03:00
各位大大晚安 最近小弟在写一个小专题
题目简单说就是分配航段内航班给各个航空公司
譬如我这个航段里总共有10个航班要分配给2个航空公司
这样就有可能是(0,10) (1,9)以此类推
航班数跟航空公司小还好说,分配的航空公司一多,想求出每种可能性就要跑半天,不知
道有没有更快求出的写法?
以下是目前写的 a就是当下的可能性
total =4 #总共要分配的航班数
num = 3 #分给几家航空公司
a = [0 for x in range(num)]
def per (fas_total,air_number,num):
if air_number == 1:
a[num-air_number] = fas_total
print(a)
print("========================")
else:
for i in range(fas_total+1):
a[num-air_number] = i
per(fas_total-i,air_number-1,num)
per(total,num,num)
希望有人可以帮忙我一下,谢谢~
作者: flarehunter (Range)   2018-11-29 21:51:00
如果需要每种组合的话你的做法就最快了但如果只是想算有几种的话应该有公式解
作者: yoyololicon (萝莉大好)   2018-11-29 22:38:00
可以用itertoolsㄟ好像不行 当我没说XD
作者: god145145   2018-11-30 08:26:00
后面还有什么运算?
作者: TitanEric (泰坦)   2018-11-30 19:24:00
用yield呀 需要的时候再跟他拿
作者: jamfly (jamfly)   2018-12-01 15:48:00
好像大一的程设作业

Links booklink

Contact Us: admin [ a t ] ucptt.com