月刊「現代数学」数学パズルにトドメをさす?! 今月のFlash
第32回
2013年 5月号
向こう岸へ渡れ!(その2) 〜速い船・遅い舟〜
全てのボートを効率よく運ぶ手順を探す
Adobe Flash Player を取得

目的

速度の違う何艘かのボートを2〜4人で向こう岸まで運びます。その最短手順(表示されている目標時間に相当)を探して下さい。

基本操作

人のアイコンをドラッグしてボートに乗せ、「時計を進める」をクリックすると、人の乗ったボートが対岸に向けて出発します。ボートには同時に何人でも乗ることができ、表示されている数字が、片道にかかる時間(分)となります。いずれかのボートが岸に到達するタイミングごとに時計が止まり、人を乗せ替えられます。川に移動中のボートがある場合は、新たに人を乗せずに時計を進めることもできます。

設定の選択

片道1分から10分までの10艘のボートのうち4艘を選んで2人で運ぶ問題と、10艘のボート全てを2人〜4人で運ぶ問題の中から設定を選択できます。4艘を選ぶ問題では、ボートをプログラムにランダムに選ばせることも、自分で選ぶこともできます。

途中で「最初から」をクリックすると、同じ設定で最初からやり直すことができます。また、「設定変更」をクリックすると、設定選択画面に戻ることができます。

最短所要時間について

4艘のボートを2人で運ぶ問題で、各ボートの片道にかかる時間を短い方から順にt1, t2, t3, t4とすると、最短所要時間Tは、
  T=2t1+2t2+t4
  T=3t1+3t2+t3
  T=t1+3t2+t4
  T=2t1+t2+t3+t4
の4通りのケースがあります(場合分けの条件は本編記事参照)。

10艘のボートを運ぶ問題の所要時間は、2人で50分、3人で29分、4人で20分というのが、現時点で用意している最短解です(具体的な手順は本編記事参照)。もっと効率のよい手順がないか検証してみて下さい。