希望どおりに機能する関数がありますが、コースの作業のために、この関数を次のようなクラスに変換する必要があります。
- という関数が必要
solveIt
です。 - 次の 2 つの値を返します。
- このナップザックの問題を解決した場合に True になるブール値、および
- 正しい値を持つナップサック オブジェクト。
クラス__str__()
には、このような文字列を返す関数が必要です。最初の行はサイズで、2 行目は要素のカンマ区切りのリストです。
10
4,1,9,2,0,4,4,4,3,7
私はクラスをよく理解していないので、助けていただければ幸いです。これが私が今持っている機能です:
from itertools import combinations
def com_subset_sum(seq, target):
if target == 0 or target in seq:
print(target)
return True
for r in range(len(seq),1,-1):
for subset in combinations(seq, r):
if sum(subset) == target:
print(subset)
return True
return False
print(com_subset_sum([4,1,9,2,0,4,4,4,3,7],10))