WEBで紹介されたバケツ問題が解けなくてショック。随分頭が固くなったものだな。
問題
「10リットルのバケツに水が8リットル入っている。他に5リットルと3リットルのバケツがある。これを使って4リットルを測って5Lバケツに作って欲しい」
悩んで悩んで、う?む。
ヒントと回答は続き以下に書いておきます。
ヒントとして、私が悩んだ内容を書いてみます。
4リットルを作るためには、次のパターンでしか作れないと思う。
4L=2+2 もしくは1+3
ここで、私は大きなミスをして、汲み取る方法だけで2Lを作る事に集中。捨てたり残ったりするものを組み合わせることが出来なかった。
なので、見事玉砕。
たしかに作れたのだけど...
水を5Lくみ出す。そこから3Lくみ出して元の10Lバケツに戻す。で、残ったのは2L。一つ目の2L作成。
出来た2Lを3Lのバケツに移動。
空いた5Lのバケツで再び10Lのバケツからくみ出す。
一度10Lのバケツの水を全て捨てて、3Lのバケツにある2Lを移す。
空いた3Lのバケツで、5Lのバケツから水をくみ出す。残ったのは2L。先ほどの10Lバケツに移した2Lを5Lバケツに移して4Lの完成。
で、9回も移動させた。最低回数には程遠い。
正解は6回でした。
元ネタはどうやら「ダイ・ハード4」らしいのだけど、覚えてないなぁ。見たっけ???
移す回数 | 10ℓバケツ | 5ℓバケツ | 3ℓバケツ | |
初期状態 | 8 | 0 | 0 | |
1 | 3 | 5 | 0 | 10Lバケツから5Lバケツへ一杯になるまでそそぐ |
2 | 3 | 2 | 3 | 5Lバケツから3Lバケツへ一杯になるまでそそぐ |
3 | 6 | 2 | 0 | 3Lバケツから10Lバケツへもどす |
4 | 6 | 0 | 2 | 5Lバケツから3Lバケツへ全て移す |
5 | 1 | 5 | 2 | 10Lバケツから5Lバケツへ一杯になるまでそそぐ |
6 | 1 | 4 | 3 | 5Lバケツから3Lバケツへ一杯になるまでそそぐ |