20151023-天秤3回で12球の中から1個の不等重球を探す問題

3839 ワード

问题:12个のボールがあって、その中で1つのボールはその他の11个と等しくなくて、天秤(分銅がありません)を通じて3回悪いボールを量ります.ある解法:
1、12個のボールをa、b、cの3組に分けます.
a: a1 a2 a3 a4b: b1 b2 b3 b4c: c1 c2 c3 c4
2、以下の方法で(python疑似コード)と呼ぶ
if a1+a2+a3+a4 == b1+b2+b3+b4 : // x in c1 c2 c3 c4
    if c1+c2 == a1+a2 : // x in c3 c4
        if c3 == a3 :
            c4 is x
        else c3 != a3 :
            c3 is x
    elif c1+c2 != a1+a2 : // x in c1 c2
        if c1 == a1 :
            c2 is x
        else c1 != a1 :
            c1 is x
elif a1+a2+a3+a4 != b1+b2+b3+b4 : // x in a b
    // reset a = heavier ...
    if a1+a2+a3+b1+b2 == c1+c2+c3+c4+a4 : // x in b3 b4
        if b3 == c1 :
            b4 is x
        else b3 != c1 :
            b3 is x
    elif a1+a2+a3+b1+b2 > c1+c2+c3+c4+a4 : // x in a1 a2 a3
        if a1 == a2 :
            a3 is x
        else a1 < a2 :
            a2 is x
        else a1 > a2 :
            a1 is x
    elif a1+a2+a3+b1+b2 < c1+c2+c3+c4+a4 : // x in b1 b2 a4
        if b1 == b2 :
            a4 is x
        else b1 > b2 :
            b2 is x
        else b1 < b2 :
            b1 is x