ク イ ズ の こ た え
              

Q54 
答 ややこしいので下記の出題者、はらださんの解説と
        正解者 Aokiさんの解答をじっくりご鑑賞下さい。


  
■ はらださんの解説

  まず12個の球に (abcdefghijkl) と命名する
  便宜上、天秤にかける操作を=<>で表し、それぞれ天秤がつり合った時、
  右が重かった時、左が重かった時、とする。

  まず12個のボールを4つずつの3組に分ける。
  それぞれを abcd, efgh, ijkl とする。


  
[1-1]

   abcd=efgh
   abcdefghは普通のボールであり、ijklの中に重さの違う
   ボールがあることになる。 --> [2-1/2]へ

  [2-1]
   ijk=abc
   ijkは普通のボールで、l が重さの違うボールである。 --> [3-1]へ

  [3-1]
   l > aなら l が重い
   l < aなら l が軽い

  [2-2]
  ijk<abc
  ijkのうちのどれかが軽い --> [3-2]へ

  [3-2]
  i = j なら k が軽い
  i < j なら i が軽い
  i > j なら j が軽い


  
[1-2]

  abcd>efgh
  ijklは普通のボールで、abcdが重いか、efghが軽いかになる --> [2-3/4/5]へ

  [2-3]
  abe=cdf
  g かhが軽い-->[3-3]へ

  [3-3]
  g>hならhが軽い
  g<hならgが軽い

  [2-4]
  abe>cdf
  abが重いか、fが軽いか-->[3-4]へ

  [3-4]
  af=ij ならbが重い
  af>ij ならaが重い
  af<ij ならfが軽い



  正解者

  1.Aoki さん      Nov 16, 99

  2.martini さん     Dec 8, 99


   ■ Aoki さんの解説

        ”Q54. これでどうだっ。
        最初に 4つずつ秤に載せて、

       A. 釣り合わなかった場合

           軽かった方にあったボールをL1-L4、
           重かった方のをH1-H4、
           載せなかったのをM1-M4として

            H1H2L1L2 と H3L3M1M2 でまた秤に載せる。

         A-a. 左が重かった場合

           H1 と H2 で秤に載せる。 重かった方が他より重い。
           釣り合った場合は L3 が他より軽い。

         A-b. 右が重かった場合

           L1 と L2 で秤に載せる。軽かった方が他より軽い。
           釣り合った場合は H3 が他より重い

         A-c. 釣り合った場合

           L4 と M3 で秤に載せる。
           A-c-1. 左が軽ければ L4 が他より軽い。
           A-c-2. 釣り合えば H4 が他より重い。
           A-c-3. 右が軽ければ、途中でボールを取り違えている。


       
B. 釣り合った場合

         載せたのをO1-O8, 載せなかったのを M1-M4 として
         M1M2M3 と O1O2O3 で秤に載せる。

        B-a. 左が重かった場合

          M1 と M2 で秤に載せる。
          重かった方が他より重い。
          釣り合った場合は M3 が他より重い。


        B-b. 左が軽かった場合

          M1 と M2 で秤に載せる。
          軽かった方が他より軽い。
          釣り合った場合は M3 が他より軽い。

        B-c. 釣り合った場合

          M4 と O1 で秤に載せる。

          B-c-1. 左が軽ければ M4 が他より軽い。
          B-c-2. 釣り合えば、そもそも問題設定がおかしい。
          B-c-3. 右が軽ければ、M4 が他より重い。

        Q52 もわかったけど、そういえばどっかで聞いたことが
        ある問題でした。
        これであとは Q50 だけだなあ。”

        ---------


     ■ゆし豆腐さんの別解

     別解を見つけました。参考のために送ります。
     記号を使っていますので、先に回答の見方を解説します。
          ↓
---------------------------------------------------------
 12個のボールに名前をつけ、ABCDEFGHIJKL とします。
ただし、正常なボールであることが分かったものは、その時点で名前を
 O に換えます。

  天秤にかけて、はかった結果を次の記号で表します。
    =  重さが等しい
    >  左が重い
    <  右が重い

  例えば、AB と CD をはかって、もしも AB の方が重かったら

    AB > CD なら {
       螂
    }

  という表記をします。これは、

「もし、AB > CD なら { と }  の間にはさまれた 螂 の処理を行う。
  AB > CD でないときは、 { } 間の処理を行わずに、つぎの行へ進む。」

  という意味を表すものとします。
  このような文は入れ子にすることができます。入れ子にした次の文は、
見やすくするため、次下げして書きます。天秤は3回しか量れませんの
で、文の入れ子は3段階までになるはずです。また何回天秤に載せたかを明
らかにするため@ABの番号をつけます。

  結果が確定したときは、例えば { A : 重 } のように表します。

なお、  // の後はコメントです。どこまで分かったか途中経過を示します。

-------------------------------------------------------
XYZ の3つのボールで、ひとつだけ重いものがあるときは、
  X = Y なら    { Z : 重 }
  X < Y なら    { Y : 重 }
  X > Y なら    { X : 重 }
というやり方で一回量っただけで答がでます。軽い場合も同様です。

したがって、3つのボールのなかに重い(軽い)ものがあることが
分かったときは、
  { XYZ : 重 }
という略記をすることにして1回と数えます。

前置きが長くてすみません。
--------------------------------------------------------

以下が答です。
--------------------------------------------------------
            // ABCDEFGHIJKL
@ABCD = EFGH なら  {         // OOOOOOOOIJKL
    AIJK = OOO なら  {         // OOOOOOOOOOOL
        BL > O なら    { L : 重 }
        BL < O なら    { L : 軽 }
      }
    AIJK < OOO なら  B{ IJK : 軽 }
    AIJK > OOO なら  B{ IJK : 重 }
  }
@ABCD < EFGH なら ABCD と EFGH の名前を入れ換えて次へ進む
@ABCD > EFGH なら  {         // ABCDEFGHOOOO
    AABCE = OOOD ならB{ FGH : 軽 }
    AABCE > OOOD ならB{ ABC : 重 }
    AABCE < OOOD なら  { // OOODEOOOOOOO
        BD > O なら    { D : 重 }
        BD = O なら    { E : 軽 }
      }
  }


/ クイズのもくじ /



 
 uda@awa.or.jp