アラカン"BOKU"のITな日常

文系システムエンジニアの”BOKU”が勉強したこと、経験したこと、日々思うこと。

EXCELで魔法陣をといてみる。意外に楽しい!

EXCELで魔法陣を遊んでみたら意外に楽しかったという話です。

 

実は恥ずかしながら、最近になって数学パズルの本を読んで、魔法陣というものがあるのを初めて知りました。

 

「いまさら・・かよ!」という声も聞こえてきそうですが、本当なのでしょうがないです。それを試しにやってみたら、これが結構面白かったわけです。

 

魔法陣はざっくりいうと「N✕Nの正方陣に、1~Nの数字を埋めて、縦横斜めの数字の和をすべて同じにする」ものです。

 

この縦横斜めの数字の和をすべて同じにする部分の計算はEXCELの得意技ですよね。なので、迷いなくEXCELで空白の枠を作ってやってみました。

 

きっかけになったパズルの本に書いてあったのは、3✕3の魔法陣だけでしたけど、せっかくなので、Nを、3から7までやってみます。

f:id:arakan_no_boku:20161224112325j:plain

この、正方陣の外に0が表示されている部分には縦計・横計・斜め計を計算するためのSUM関数を埋め込んでます。

 

これで数字を埋めながら考えていくわけですね。やってみた結果はこんな感じです。

f:id:arakan_no_boku:20161224115418j:plain

 

3✕3と、5✕5は以下の解法を使いました。1~4のルールにそって繰り返していくやり方です。

  1. 一番上の行の真ん中に1を置く。
  2. 右斜め上に連番をおいていく。
  3. もし、はみ出したら反対側の空マスに連番をおいていく
  4. 右斜め上にすでに数字があるか角の場合は下に連番を置く

 

7✕7も、同じやり方でできるかと思ったら、うまくいきませんでした。試行錯誤の結果、以下のやり方でできました。これが、一般的な解法かどうかはわかりませんが、一応紹介しておきます。

  1. 上から4段目、右から3番目に1を置く
  2. 右斜め上に連番をふっていく
  3. はみ出たら、反対の端におく
  4. ぶつかったら、一マス飛ばして右のマスにおく
  5. 右にはみ出たら反対側のマスを加えて1マスとばしにする

 

4✕4は本に書いてあった解法を参考にしました。とてもシンプルで面白みはなかってですが。

  1. 左上から、1~順に数字をうめる。
  2. 数字を埋めたら、対角線上の数字を入れ替える。

 

6✕6は超苦労しました。同じ偶数陣だから、4✕4と同じようにできるのかな?と思ったら全然できません。

 

1~36の数字を6✕6のマス目に埋めるわけだから、縦横斜めの合計が111になるのは計算すればすぐわかるのですけど、なかなか。ガチで3時間位悩みました。多分、できたのは単なる偶然です。2度とできる気はしません。

 

解は概ね1800京通りあるそうなのですが、ピンときません。どうも、他のパターンとちがって、6✕6の魔法陣には解法的なものはないみたいですね。

 

魔法陣にはいろんな解き方があって、上記がすべてではありません。EXCELを使うと検算も楽で、昼休みとかの暇つぶしには結構楽しいパズルになりますね・・ということで、紹介でした。