"BOKU"のITな日常

テクノロジー以外にも、日常には、面白そうな”イット”がつまってるんだな

EXCELで縦横斜めの検算をしながら魔法陣をといてみた/EXCELの小ネタ

f:id:arakan_no_boku:20190201221826j:plain

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

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

 

この縦横斜めの数字の和をすべて同じにする部分の計算はEXCELの得意技です。

なので、EXCELで空白の枠を作ってやってみました。  

f:id:arakan_no_boku:20161224112325j:plain

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

これで数字を埋めながら考えていくわけです。

 

やってみた結果はこんな感じです。

f:id:arakan_no_boku:20161224115418j:plain

3✕3と、5✕5の解法

3✕3と、5✕5は以下の解法を使いました。

1~4のルールにそって繰り返していくやり方です。

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

7✕7も、同じやり方でできるかと思ったら、うまくいきませんでした。

試行錯誤の結果、以下のやり方でできました。

これが、一般的な解法かどうかはわかりませんが、一応紹介しておきます。

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

4✕4は本に書いてあった解法を参考にしました。

とてもシンプルで面白みはなかってですが。

  1. 左上から、1~順に数字をうめる。
  2. 数字を埋めたら、対角線上の数字を入れ替える。
6✕6の魔法陣の解法は・・よくわからない

6✕6は超苦労しました。

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

1~36の数字を6✕6のマス目に埋めるわけだから、縦横斜めの合計が111になるのは計算すればすぐわかるのですけど、なかなか。

ガチで3時間位悩みました。

多分、できたのは単なる偶然です。

2度とできる気はしません。 

解は概ね1800京通りあるそうなのですが、ピンときません。

どうも、他のパターンとちがって、6✕6の魔法陣には解法的なものはないみたいです。 

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

ではでは。

 

2018/11/27追記

>魔法陣を作成するpythonプログラムも作ってみました。

arakan-pgm-ai.hatenablog.com

>こっちなら、奇数次であれば11×11とか13×13みたいな大きいものもできます。