場合分け(Divide into cases) 例題1



場合分け(Divide into cases)...
物事を考えるとき、「ある場合はどうで、そうでない場合はこう」というように、考える対象の出方によって異なる対応または回答が必要であることがあります。複雑そうに見える問題を分割して場合分けして解く、という手段は算数や数学だけに限らず役に立つ場面があるでしょう。

(例題)
ここに金貨が8枚あって、その中に本物より重さの軽い偽物が1枚混ざっています。図のような天秤ばかりを2回だけ使うとどれが偽物かを判別できます。その理由を説明してください。
画像が表示されていません

(考え方)
天秤ばかりを3回まで使ってよいのなら、 偽物を含む8枚の金貨を【4枚:4枚】に分けて天秤ばかりにのせて重さを比べ、軽い方の4枚を取り出してまたそれを【2枚:2枚】に分けて天秤ばかりにのせ、また軽い方の2枚を取り出して最後にそれを【1枚:1枚】に分けて天秤ばかりにのせるとどれが偽物かを判別できます。しかし今回は天秤ばかりを2回しか使えないので工夫が必要です。

そこで偽物を含む8枚の金貨を【3枚:3枚:2枚】に分けて、天秤ばかりの左右それぞれに3枚ずつのせます。これでこの問題は解決できます。なぜなら、

  1. 左の3枚が軽かった場合
    その3枚から2枚選んで1枚ずつ天秤ばかりの左右にのせる。

    1. 左の1枚が軽かった場合
      その1枚が偽物である。

    2. 右の1枚が軽かった場合
      その1枚が偽物である。

    3. 左右が釣り合った場合
      残りの1枚が偽物である。


  2. 右の3枚が軽かった場合
    左の3枚が軽かった場合と同様にして偽物を判別できる。

  3. 左右が釣り合った場合
    残りの2枚を1枚ずつ天秤ばかりの左右にのせる。

    1. 左の1枚が軽かった場合
      その1枚が偽物である。

    2. 右の1枚が軽かった場合
      その1枚が偽物である。

以上のようにすれば天秤ばかりを2回使うだけで偽物を判別できます。

今回の解答は、あらゆる結果を考慮してそれらが個々に場合分けされています。この「場合分け」して考える経験はプログラムコードを書くとき重要なはたらきをします。


※解答の初めを読んで「なぜ8枚の金貨を【3枚:3枚:2枚】に分けることを思いついたのか」と感じる方がいらっしゃるかもしれません。 これは「【4枚:4枚】という分け方では天秤ばかりを3回使ってしまうから【2枚:2枚:4枚】ならどうか?それでダメなら【2枚:2枚:3枚:1枚】ならどうか?」という試行錯誤の末に上手くいった場合分けであり、最初から突然閃いたものではないのでご注意ください。

Tweet


数学の方略(ほうりゃく)へ戻る