質問:
整数の重みのリストが与えられました。これらの重みを 2 つのセットに分散して、各セットの合計重量の差ができるだけ小さくなるようにする必要があります。
入力データ: 重みのリスト。
出力データ: 重量差の最小値を表す数値。
答えを見ましたが、なぜ bestval = -1 なのか理解できません。誰でも私がそれを理解するのを助けることができますか? どうもありがとう!
コードは次のとおりです。
import itertools;
def checkio(stones):
total = 0
for cur in stones:
total += cur
bestval = -1
for i in range(0,len(stones)):
for comb in itertools.combinations(stones,i):
weight = 0
for item in comb:
weight += item
d = diff(total - weight, weight)
if bestval == -1 or d < bestval:
bestval = d
return bestval
def diff(a,b):
if a >= b:
return a - b
else:
return b - a