酔眼漂流読書日記

本と音楽と酒場と言葉

笑わない数学者

先日あるお店のカウンターで隣に座っていた人に、次のような問題を出されました。


ビリヤードの玉(1〜15)から5つ取り出して真珠のネックレスのように輪につなげる。
その5つの中からいくつでもいいのでさらに取り出すのだが、必ず隣り合う
連続したものを取り出すことを条件とする。取り出すのは1つでも2つでも
5つ全部でもいい。さて、玉には数字が書いてあるが、取り出した玉の数字
を合計して、1から21までの数字を作るには、最初に5つの玉をどのように選び、
さらにどのように輪の形に並べておけばいいか?
この問題はミステリー作家森博嗣氏の「笑わない数学者」という作品の中に出てくるそうです(私はこの本は読んだことがありません)。小説の中には答えが出てこないので、私に質問した人はフラストレーションがたまっているそうです。その日は考える暇がなかったのですが、そろそろマジメに考えるかと思い、少し考えてみました。
最初複数の解答があるかな?とも思いましたが、結局答はただ一つのようです。
(他には存在しないというものも含めて)ある答を導くまでに2時間弱かかりました。
答をここに書くのは野暮というものですので、載せないことにします。
最初 Scheme か何かでプログラムして力任せに解いてやろうかとも思いましたが(笑)、結局紙とボールペン(とアルコール2杯(~-~;)だけで解答に辿りつきました。ご興味のある方は是非挑戦してみて下さい。
ちなみに単純に15個の数字の中から5つ選んで並べる順列は
15 P 5 = 15 x 14 x 13 x 12 x 11 = 360,360
すなわち36万通りですので、虱潰しにやるのは辛そうです。
いかに場合の数を減らしてから検討できるかがキモでしょう。