擅长:python、mysql、java
<p>你很接近,非常接近:)。</p>
<p>既然这是你想解决的难题,我就给你指点。对于本部分:</p>
<blockquote>
<p>Eg if (a,b,c,d) is the first set of values in comb, i need to check
a,b,c,d,a+b,a-b, .................a+b+c-d,a-b+c+d........ and so on.</p>
</blockquote>
<p>考虑一下:每个重量可以放在一个秤上,也可以放在另一个秤上,或者两者都不放。所以对于<code>a</code>的情况,这可以表示为<code>[a, -a, 0]</code>。其他三个也一样。现在你需要所有可能的配对,每个权重有3种可能(提示:<code>itertools.product</code>)。那么,一个可能的配对度量(比如说:<code>(a, -b, c, 0)</code>)仅仅是这些的总和(<code>a-b+c+0</code>)。</p>
<p>剩下的就是检查你是否能“测量”所有需要的重量。<code>set</code>可能在这里派上用场。</p>
<p>注:如评论中所述,一般情况下,这些分开的权重可能不需要是不同的(对于这个问题来说是不同的)。你可以重新考虑<code>itertools.combinations</code>。</p>