7トン、4トン、5トン、6トン、3トンの5種類の荷物があり、制限質量15トンに収めるというナップザック問題を解いています。以下のようにコードを書いたのですが、15トンぴったりの組み合わせが表示されません。符号が間違っているのでしょうか。教えていただけたら嬉しいです。よろしくお願いいたします。
python
1class Item: 2 def __init__(self,name,weight):#クラスの定義 3 self.name=name 4 self.weight=weight 5 6 7 8#初期化する 9limit = 15 10items=[Item("A",7),Item("B",4),Item("C",5),Item("D",6),Item("E",3)] 11L=len(items) 12 13 14result=[]#結果を入れる 15 16def judge(i,select): 17 18 if select+items[i].weight<limit: 19 select +=items[i].weight 20 result.append(items[i].name) 21 if i<L-1: 22 judge(i+1,select) 23 if select+items[i].weight>limit: 24 select+=0 25 if i<L-1: 26 judge(i+1,select) 27 28 29 30select=0 31judge(0,0) 32 33print('選んだ荷物の組み合わせは') 34print(result) 35

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。