カメ飼ってる新米エンジニアの覚書き

とにかくカメがかわいい

アルゴリズムパズルを考えてみた

ルール

3 * 3マス。 1から9までの数字を当てはめて、縦、横、斜めの合計を全て同じにするよくあるタイプ。

まず、合計値を推測します

1 2 3 4 5 6 7 8 9

一番小さい値が 1 一番大きい値が 9 真ん中の値が 5

なので、1 + 9 + 5 で 15 なんじゃないかと。 奇数なので、合計で10になるセットを2つの数字で組むと(1+9, 2+8, 3+7 とか・・・)、5だけ(5+5)でその数自身になって、あぶれますしね。 でも、なぜ?と言われると説明できない・・

合計値(45)を出して、列数の3で割るっていうのが、一番説明としてはしっくりきそうです。(45/3 = 15)

という2つの視点から、5が真ん中になるのが一番簡単そうですよね、 セットは10が作りやすいはずなので。

| - | - | - |
| - | 5 | - |
| - | - | - |

となると、どこかの対角線上に入るであろう数字は、例えば(1,9)

ここでポイントとなってくるのが9です。 9の来るライン上には、(8,7,6)は置けません。9と足すと、15以上の合計値ができてしまうので。 以下、ライン上が×。残りは○。

| × | ○ | × |
| × | 5 | ○ |
| 9 | × | × |

○のところにしか(8,7,6)は置けないのに2箇所じゃ足りない・・・

| × | ○ | ○ |
| 9 | 5 | × |
| × | ○ | ○ |

とすると、9が角にくることはなさそうです。

| × | 9 | × |
| 9 | 5 | 9 |
| × | 9 | × |

9が置けるのはこの4パターン

| - | - | - |
| 9 | 5 | 1 |
| - | - | - |

9が決まれば、1は1箇所に決まります。

| n | ○ | ○ |
| 9 | 5 | 1 |
| m | ○ | ○ |

○のところにしか入らないのは(8, 7, 6)。 とすると、残りの(2, 3, 4)が入るのは×のところです。そちらの方が選択肢が狭いですね。

9 + n + m =15 だとすると、 (n, m)は(2, 4)もしくは(4, 2)です。パターンとしては2つですね。

| 4 | ○ | ○ |
| 9 | 5 | 1 |
| 2 | ○ | ○ |

仮に当てはめます。とすると、4の対角や2の対角が埋められそうです。パターンは1です。

| 4 | ○ | 8 |
| 9 | 5 | 1 |
| 2 | ○ | 6 |

もう全部埋まりますね。

| 4 | 3 | 8 |
| 9 | 5 | 1 |
| 2 | 7 | 6 |

9の位置は4パターン 2,4が2パターン

5が真ん中の場合は4*2の8パターン存在します。

もっと解法がありそうだなぁ