看板 Python 關於我們 聯絡資訊
各位大大晚安 最近小弟在寫一個小專題 題目簡單說就是分配航段內航班給各個航空公司 譬如我這個航段裡總共有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) 希望有人可以幫忙我一下,謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.253.107 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1543496582.A.137.html
flarehunter: 如果需要每種組合的話你的做法就最快了11/29 21:51
flarehunter: 但如果只是想算有幾種的話應該有公式解11/29 21:51
QQ我需要每種組合因為還要做運算,如果沒辦法只好讓它跑到底了 ※ 編輯: zz860619 (1.164.253.107), 11/29/2018 22:32:51
yoyololicon: 可以用itertools11/29 22:38
yoyololicon: ㄟ好像不行 當我沒說XD11/29 22:41
itertool我也有試過 就利用product跑出所有組合 然後再把數字加起來等於總航班數抓 出來 但是這樣記憶體跑著跑著就爆了QQ 我也不知道有沒有更好的辦法 ※ 編輯: zz860619 (1.164.253.107), 11/30/2018 00:25:15
god145145: 後面還有什麼運算?11/30 08:26
就我想把每種可能性的利潤算出來再做比教這樣 ※ 編輯: zz860619 (1.164.253.107), 11/30/2018 09:16:10
TitanEric: 用yield呀 需要的時候再跟他拿11/30 19:24
好的,我查看看,謝謝~ ※ 編輯: zz860619 (1.164.253.107), 12/01/2018 11:58:43
jamfly: 好像大一的程設作業 12/01 15:48