問題概略
正五角形の各頂点に丸い枠があり,その 1 つに 1 が記入されています。残りの 4 つの枠(時計回りにア~エとします)にもそれぞれ数が記入されています。
隣どうしでつながっているいくつかの数(1 つ~5 つ)を取り出して和を求める方法は全部で 21 通りあります。この和で 1 から 21 までのすべての数を作ることができるときのイとウの和を求めてください。
解説の pdf も作りました。きれいなレイアウトで読みたい方はこちらをどうぞ。
全パターン調べる
ア~エを大きい順に並び替えたものを ~ とおきます。
21 通りの選び方がすべて違う和を与えることからこれらはすべて異なる数で です。
は明らか。
また,1 を 2 つ使って 2 を作ることはできないので ~ には 2 が含まれます。 です。
かどうかはこの時点ではわかりません。1 の隣に 2 をおいて を作れば ですし,1 の隣に 2 をおかずにどこかの枠に 3 をおく方法もあるからです。
頑張って場合分けしてもいいのですが,こういう casework は嫌いなのでプログラムを組んで解きました。mathematica です。
In[]:= AbsoluteTiming[ eqn = {a + b + c == 18, a > b > c > 2}; lst1 = Join[{2}, #] & /@ Values /@ Solve[eqn, {a, b, c}, Integers]; lst2 = Join[{1}, #] & /@ Flatten[Permutations /@ lst1, 1]; isok[lst_] := DuplicateFreeQ@ Flatten[Table[Total /@ Partition[lst, k, 1, {1, 1}], {k, 1, 4}]]; lst3 = Select[lst2, isok]; ans = DeleteDuplicates[Total[Take[#, {3, 4}]] & /@ lst3]] Out[]= {0.0225857, {12}}
2 行目 3 行目で(1)(2)をみたす を求めています。7 通りありました。
4 行目ではこれに 1 を加えたものの順列を作って,5 ~7 行目で和がすべて異なるかどうか調べています。
具体的には次の 20 項について調べました。
総和の が他の項とダブらないのは明らかなので,ここでは考えていません。
\begin{align*}
&1,\, a,\, b,\, c,\, d,\, \\
&1 + a,\, a + b,\, b + c,\, c + d,\, d + 1,\, \\
&1 + a + b,\, a + b + c,\, b + c + d,\, c + d + 1,\, d + 1 + a,\, \\
&1 + a + b + c,\, a + b + c + d,\, b + c + d + 1,\, c + d + 1 + a,\, d + 1 + a + b\mbox{ ……(4)}
\end{align*}
このチェックをパスしたのが 8 行目の lst3 で,2 つありました。
条件をみたす (1, ア, イ, ウ, エ) は次の 2 組です。反転で互いに移りあう2組ですね。
求める和は です。
手計算で解くとしたら(3)(4)をしらみつぶしするしかなさそうですが,うまい方法はあるんでしょうか?
元ネタ(?)について
これは森博嗣さんの『笑わない数学者』(講談社ノベルス)に載っている問題です。
さて,では,もう一つ問題を出そう。
五つのビリヤードの玉を,真珠のネックレスのように,リングにつなげてみるとしよう。
玉には,それぞれナンバーが書いてあるな。
さて,この五つの玉のうち,幾つ取っても良いが,隣どうし連続したものしか取れないとしよう。
一つでも二つでも,五つ全部でも良い。
しかし,離れているものは取れない。
この条件で取った玉のナンバーを足し合わせて,1から21までのすべての数ができるようにしたい。
さあ,どのナンバーの玉をどのように並べて,ネックレスを作れば良いかな?(ノベルズではp.58)
ちなみに解答は載っていませんでした。