いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

容器2個で決まった量を測る問題を2元1次不定方程式で解く

映画『ダイ・ハード3』で、主人公のマクレーン刑事が悪い奴らに「3ガロンの容器と5ガロンの容器を使い、4ガロンの水を測れ」という問題を解かされる場面があります。制限時間内に解かないとどこかが爆破される、という話でした。ガロンというのは体積の単位で、3リットルと5リットルの容器で4リットルを測れ、でも構いません。水道は自由に使えます。さあ、どうしますか?

例えば3ガロンの容器をいっぱいにしてこれを空の5ガロンの容器に入れ、また3ガロンをいっぱいにして5ガロンの容器がいっぱいになるまで入れれば、3ガロンの容器には1ガロン残ります。この方法で1ガロンを測ったことになります。こんな感じで4ガロンを測ればよいのです。

この程度の規模の問題なら試行錯誤していればいずれ正解は見つかります。しかしここでは応用の利く、方程式を使って答えを求める方法を説明しましょう。

以下、5ガロンの容器をA、3ガロンの容器をBと表しましょう。そこで、Aを合計x回、水で満たしたとし、そこから合計y回、Bを使って水を捨てた結果、Aに4ガロン残ったとしましょう。これは方程式で書けば5x-3y=4です。2元1次不定方程式と呼ばれます(変数が2個、解は無数にあるので「不定」方程式というわけ)。x、yに適当な値(自然数)を入れて式が成り立つようにしてみましょう。水と容器が目の前でチラついているとなかなか難しいかも知れませんが、こうして式にしてしまえば考えやすいと思います。少し試せばx=2、y=2がすぐ見つかります。5・2-3・2=4ですから、確かにさっきの方程式は成り立つわけです。x=2、y=2というのは、実際の操作で説明すると「Aは2回いっぱいにし、Bで2回測って捨てた」ということ。つまり、「Aをいっぱいにする。Bに移せばAに2ガロン残る。Bを空にする。Aに残る2ガロンをBに移す。Aをいっぱいにする。AからBに、Bがいっぱいになるまで移してそれを捨てる」となり、Aに残ったのは4ガロンです!

ここで出てきた方程式の解x、yは、今回はひと組しか見つけませんでしたが実は無数にあります。この解の求め方もいろいろなテキストに載っています。