じぶん更新日記・隠居の日々
1997年5月6日開設
Copyright(C)長谷川芳典



10月のインデックスへ戻る
最新版へ戻る



クリックで全体表示。


 10月18日朝の岡山は東の空の地平線付近に雲があったものの空全体としてはよく晴れ、備前富士(芥子山)の真上に輝く太陽を眺めることができた。雲による屈折のためと思われるが、太陽の形がダルマ型になっていた。このような、はっきりとしたダルマを見たのは人生70年で初めて。

2022年10月18日(火)



【小さな話題】親子のライオンと親子のトラと象と象使いが川を渡るクイズ

 YouTubeに、

【ゆっくり解説】これか゛て゛きたらAppleに入社て゛きる!?Apple入社試験8選【2022年10月11日】

 という動画が公開されていた。8つの問題の中には、YouTubeでもたびたび紹介されている「モンティホール問題」や「フェルミ推定」などお馴染みの問題も含まれていて簡単に解けたが、第7問の
  • ある集団がボートで川を渡ろうとしている。親ライオン1頭と子ライオン2匹、親トラ1頭と子トラが2匹、象使い1人と象1頭。
  • 川には2人乗り【1頭も1匹も1人として数える】のボートが浮かんでいる。ボートを操縦できるのは、親ライオン、親トラ、象使いのみ。
  • 子ライオンは親ライオンがそばにいないと、親トラに食べられてしまう。
  • 子トラは親トラがそばにいないと、親ライオンに食べられてしまう。
  • 象は、象使いがそばにいないと、他の全ての動物を踏み潰してしまう。【←そんなデカい象が2人乗りのボートに乗れるとは思えないが】
  • 川を無事に渡るにはどうしたらよいだろうか?
というクイズは最後のところで間違えてしまった。備忘録を兼ねて以下にメモしておく。
 以下、分かりやすいように、親ライオンをA、子ライオンをa、親トラをB、子トラをb、象使いをP、象をEとする。よって、この集団の構成は、
A、a、a、B、b、b、P、E
となる。また、向こう岸、川、渡る前の岸の位置関係を、

 【向こう岸】ボートの上(移動方向は矢印)【出発地点】

として表すことにする。例えば、初期状態は、

【  】  【A、a、a、B、b、b、P、E】

であり、完了状態は、

【A、a、a、B、b、b、P、E】 【  】

となる。また、ボートで移動中の状態、例えば、ボートに象と象使いが乗っていて向こう岸に向かっている時は、

【  】←PE←【A、a、a、B、b、b】

のように表す。以上の記号を使って、まず、ライオンの親子をすべて向こう岸に移す方法を考えると以下のようになる。ここまでは私でも容易に思いつくことができた。
  1. 【  】←PE←【A、a、a、B、b、b、P、E】
  2. 【E】→P→【A、a、a、B、b、b、P】
  3. 【E」←Pa←【A、a、B、b、b、P】
  4. 【a】→PE→【A、a、B、b、b】
  5. 【a】←Aa←【B、b、b、P、E】
  6. 【a、a】→A→【B、b、b、P、E】
ここまでは良かったのだが、次に誰をボートに乗せるのかがなかなか思い浮かばなかった。もっとも、PとEは、Eが単独で岸に残る時以外は切り離せないので、消去法で、次はAとBを乗せるしかないことに気づく。
【a、a】←AB←【b、b、P、E】
【A、a、a】→B→【b、b、P、E】
ここでさらに思い悩むのは、Bが戻ってきたあとで【B、b、b、P、E】の中から誰をボートに乗せるかということである。これはなかなか分からなかった。正解は、
【A、a、a】←PE←【B、b、b】
【a、a、P、E】→A→【B、b、b】
【a、a、P、E】←AB←【b、b】
というように、出発点にbだけを残すことであった。ここからは、
【A、a、a、P、E】→B→【b、b】
【A、a、a、P、E】←Bb←【b】
【A、a、a、b、P、E】→B→【b】
【A、a、a、b、P、E】←Bb←【  】
とすることで、bをすべて渡し終えることができる。これで見事正解!と思ったのだが、動画では違う解法となっており、上記の最後の2ステップの部分が、
【A、a、a、B、b】→PE→【b】
【A、a、a、B、b】←Pb←【E】
【A、a、a、B、b、b】→P→【E】
【A、a、a、B、b、b】←PE←【  】

という4ステップになっていた。私の解法のほうが、一往復分、少なくて済むと思ったのだが、よく見ると、私の解法では最後の2つのステップ:

【A、a、a、b、P、E】→B→【b】
【A、a、a、b、P、E】←Bb←【  】

では、子トラ1匹(b)が親トラから離れて向こう岸に取り残されている状態にあることに気づいた。私は、象使いが一緒に居る限り、子トラが親ライオン(A)によって食べられることはないだろうと勝手に決めつけてみたが、元の問題を見ると、
  • 子ライオンは親ライオンがそばにいないと、親トラに食べられてしまう。
  • 子トラは親トラがそばにいないと、親ライオンに食べられてしまう。
という2つの条件は象使いの有無にかかわらず適用されるものと読み取れる。象使いが子ライオンや子トラを守ってくれるとはどこにも書かれていなかったのである。私の解法は不完全であった。

 ちなみに、この種の「川渡し問題」にはいくつかバリエーションがあり、20年ほど前に考察したことがあった。


 元の動画の話題に戻るが、動画では上記の問題の後に、
あなたは円形の湖の真ん中でボートに乗っている。すると岸に虎が現れ、あなたを狙い始めた。虎は湖の中に入って泳ぐことはできないが、あなたがボートをこぐ4倍の速さで湖の周りを走ることができる。虎に捕まることなく岸に上陸して逃げることができるだろうか。但し、虎が来る前にボートが岸に着きさえすれば、逃げ切れるものとする。
が最終問題として出題されていた。
 私の記憶に間違い無ければ、この問題を初めて見たのは私が中3か高1の頃の東大五月祭であった。理学部数学科の教室では、大学祭企画として数学のクイズを5つほど出題しており、このうちの1問が上記のような問題であった【←虎と人間ではなく、狼と羊の話だったかもしれない】。当時私が解いたのは今回の動画と同じ方法であったが、もともと用意されていたのは、ボートがある螺線状のコース(但し螺線の出発点の方向は、虎の位置によって決められる)を描くように進めば、その後虎がどのように動いても岸に早く着けるというようなものであった。もっとも、螺旋状のコースはどんなものであっても直線コースよりは長い。しかしこの問題では虎の反対方向に直線コースで進んでも虎に追いつかれてしまう(直線距離を100mとすると、虎が円周上を走って180°反対側の岸に着くには200×3.14÷2=314mとなるが虎はボートの4倍の速さで走れるので先に対岸についてしまう)。なので、素朴に考えてそのような螺旋状のコースは存在しないと思われるのだが、記憶が不確かでこれ以上のことは思い出せなかった。
 なお、この問題についてはこちらにより詳細な考察があり、虎(リンク先では「鬼」)の速さがボートの速さの4.6倍ぐらいまでは逃げ延びられることも示されていた。