【謎解き】川渡り問題の基本的な考え方を解説する

river-cross謎解き

今回は「川渡り問題」について全般的な解き方を解説したいと思います。

川渡り問題ってパッと見は難しく見えるのですが、ちゃんと考えると実は1本道しかないような場面も多くて、論理パズル系の問題の中では意外と簡単な部類に入るのではないかと私は思っています。

脱出ゲーム系のイベント等で出てくる事は少ないジャンルですが、様々なパターンの問題があって頭の体操にもなりますので、是非解いてほしい問題です。

問題によって制限されるルールが変わってしまうので解き方も全然違うのですが、考え方やとっかかり等は全体的に使える部分があると思いますので、その辺りを解説したいと思います。

■川渡り問題とは何ぞや?

「川渡り問題とは何ぞや?」という方の為にまずはWikipediaから抜粋

川渡り問題(かわわたりもんだい)は、川岸にいる一団を特定の条件を満たしながら対岸に渡すパズルである。通常論理パズルに分類される。

川渡り問題

この「特定の条件」というのが川渡り問題の醍醐味で、

  • 羊の数がオオカミの数より少ないと羊が食べられてしまう。
  • 川を渡す小舟は10Kgの制限がある
  • 川を渡す小舟を漕げる人はAさんとBさんだけ

等、問題によって条件が様々で同じジャンルの問題ですが、問題個々で表情が豊かです。

■川渡り問題のルール

川渡り問題を解く上で前提となるルールをおさらいしましょう。

  • 川岸にいる一団を対岸に渡す。
  • 川を渡る手段は小船だけであり、小さいので全員は乗れないため、小分けにして往復する必要がある。
  • 「小船を漕げる者が限定されており、その者が小船に乗っていないと移動できない」という条件が与えられる場合もある。
  • 特定の組み合わせがどちらかの岸にできてはいけない。 多くは「○○がいない状態で□□と△△を一緒にしてはいけない」という形で条件が与えられる。

小舟を持ちながら変わりながら泳げばいいじゃない!と思うのですが、そこはパズルですからご愛敬で。。。

■川渡り問題は実は簡単!

川渡り問題は問題のルールを理解するのに手間取りますが、ルールさえ理解してしまえばあとは理詰めで解いていけば、分岐する箇所も少なく比較的解きやすい問題だと思います。

Wikipediaの「簡単な例」をサンプルに解き方を考えてみましょう!

問題:
1人の大人と2人の子供が岸にいる。ボートが1艘あるが大人1人か子供2人までしか乗れない(ボートを漕ぐことは全員が可能)。全員が川を渡るにはどうすればよいか?

まず、1往路を考えます。

この時、問題分の条件がクリアされるパターンは下記の3パターンです。

①大人:1 子供:0 がボートに乗る
②大人:0 子供:1 がボートに乗る
③大人:0 子供:2 がボートに乗る

復路を考えた時、①②を選択すると乗ってきた人がそのまま帰るしか方法がなく全く意味がありません。

したがって1往路目は「③大人:0 子供:2」が確定します。

次に1復路目を考えます。

子供2人しかいませんので、パターンとしては

④大人:0 子供:1 がボートに乗る
⑤大人:0 子供:2 がボートに乗る

となりますがが1往路目と同様、子供が2人とも返ってしまっては振り出しに戻ってしまい意味がありませんので 「④大人:0 子供:1」が確定します。

つぎに2往路目を考えます。

岸にいるのは大人1人と返ってきた子供1人。条件がクリアされるパターンとしては下記の2パターンです。

⑥大人:1 子供:0 がボートに乗る
⑦大人:0 子供:1 がボートに乗る

となります。⑦を選択すると、2復路目で1復路目と全く同じ「子供が一人で帰る」事となり意味がありません。ですので「⑥大人:1 子供:0」が確定します。

次に2復路目を考えます。

岸には子供大人1人と子供1人がいますのでパターンとしては下記2パターンです。

⑧大人:1 子供:0 がボートに乗る
⑨大人:0 子供:1 がボートに乗る

⑧を選択すると、2往路目で来た大人がそのまま帰って行ってしまうだけとなり意味がありません。 ですので「⑨大人:0 子供:1」が確定します。

最後に3往路目です。

岸にいる子供が2人渡れば、川渡り完了となります。

まとめると…

1往路:大人:0 子供:2 がボートに乗る
1復路:大人:0 子供:1 がボートに乗る
2往路:大人:1 子供:0 がボートに乗る
2復路:大人:0 子供:1 がボートに乗る
3往路:大人:0 子供:2 がボートに乗る

となります。

■まとめ

今回の問題では、論理的に考えていくと一本道で答えが導き出せました。

難しい問題になるといくつか分岐が出てくる問題もありますが、それも先の往復を考えると必ずどこかでダメになる所が出てくるので、理詰めで考えると川渡り問題は必ず解けます。

○条件が一番厳しい人に注目する。

あと、これは「念頭に置いておく」程度のヒントですが、一番条件が厳しい人を対岸に渡すことを考えると、答えが近づく事が多いです。

例えば今回の問題で一番条件が厳しいのは「大人」です。
(大人の場合は1人でしかボートに乗れないという条件がある。)

ですので大人1人をどうにか対岸に渡す事が出来ればゴールが近づくというわけです。

大人を対岸に渡す。
 ⇒ 復路を考えると最低でも1人子供が対岸にいる必要がある
 ⇒ まず子供2人が渡って子供1人を対岸に残す

といった具合ですね!

■感想

今回は川渡り問題の全体的な解き方を解説しました。

ただ、問題個々のルールの比重が大きい為、覆面算や数列に比べて非常にザックリとした解説になってしまいました(汗)。

川渡り問題については問題がたくさんあってバリエーションも多い為、このブログでもこれから頻繁に取り上げたいと思っています。

個人的にはこの川渡り問題は好きなジャンルです。

「覆面算」もそうですが、解き方が分かっていてもパッと答えを出せず、毎回「どうやったっけ~」と頭をひねらせる。

こういう問題ってステキだと思いませんか?

数列問題なんかは答えを知っていると問題見ただけで分かってしまうのである意味暗記問題だと思うんですよね。。。

あとどこで見たかすっかり忘れてしまったのですが、「ヨーロッパ企画」という結構有名な劇団さんがこの「川渡り問題」を題材にした劇をされていたのを見た事があって、凄く面白かったのを覚えています。

あいまいな記憶で間違っているかもしれませんが「全員で乗ってみよう!」ってなって船が沈んじゃうとか、「お前が重いからいけないんだ」ってケンカが始まるとか…確かに現実で川渡り問題の状況が起こったら論理的には絶対にいかないなと(笑)。

そんなことを想像しながら川渡り問題を解くと、問題を解きながらニヤニヤしてしまいそうです。今回の例にある問題だったら、子供2人をボートに乗せて、大人がボートの後ろを持ってバタ足で漕いでいる(笑)。

ちなみに「ヨーロッパ企画」さんの劇は結構好きで何回か見に行った事があります。長澤まさみさん主演の映画なんかも撮られてたりするので、興味がある方は見てみてください。

では!

コメント

タイトルとURLをコピーしました