某プログラム勉強会で、お題が出たので解いてみる。 問題 水がいっぱい入ったバケツ一個と、空のバケツがいくつかあり、それぞれのバケツの容量は正確にわかっている。この状態から指定された容量を量りとる、最 小手数の手順を求めよ。 ただし ・バケツからバケツに水を移す操作を1手と数える。 ・バケツからバケツに水を移す際は、注がれるバケツがいっぱいになるか、注ぐバケツが空になるまで行う。 ・従って、水は一滴も漏れない。 例えば。バケツが4つ。10リットル,8リットル,3リットル。10リットルのバケツが満タンで、あとは空っぽ。ここから4リットル量りとりたい。 最小手数の手順は 10リットルのバケツから、3リットルのバケツに注ぐ 3リットルのバケツから、8リットルのバケツに注ぐ 10リットルのバケツから、3リットルのバケツに注ぐ の3手(要するに、10リットルから3リットルを2回減じている)となる。 表