ダウンロード

魔方陣の作成

ソルバーを使って魔方陣を作成してみます。

3×3    4×4
 

メニュー
魔方陣とは
ソルバーシミュレーション 3x3の魔方陣
ソルバーシミュレーション 4x4の魔方陣
計算で解く

ソルバーとは?
ソルバーアドインの組み込み方法
関連
サンプルファイルのダウンロード
リンクリスト
コメント参照/記入

魔方陣とは

正方形の方陣に数字を配置し、縦・横・斜めのいずれの列についても、
その列の数字の合計が同じになるもののこと。


1辺がn個のマス目の場合、1列の和は


となります。

すなわち、3x3の場合は15


4x4の場合は34

合計の求め方

一辺がnである正方形の升目には、n×n 個の数字が入ります。
1からnまでの連続する整数の和は、n×(n+1)/2 、n x n までだと 2×(n2 +1)/2 となります。
ここで、n x n の正方形には n個の行 があります。
また、各行の和は等しい(魔方陣の定義)ので、それを とすると、n×S は全体の和と等しくなるはずです。

よって、1行の和 Sは、 n×(n2 +1)/2 となります。   −以上

ソルバーシミュレーション 3x3の魔方陣


とりあえず1〜9までの数字を正方形に並べ、
その縦、横、右上がり斜め、左上がり斜めのそれぞれの合計を算出する式を設定します。




制約条件

・入力セルの数値は、非負の整数。
・同じく、すべて異なる1以上9以下の数値。
・縦横斜め、それそれの合計は15

ただし、このままでは、目標セルが無いので、合計のセル一つを、目標のセルにします。
ここでは、セルF6(薄水色のセル)

下図3番目の条件、「AllDifferent」はエクセル2010から登場した新機能。

全て異なる」という制約条件になります。
これで、1〜9までの数値を1個ずつ割り当てられます。




以上でシミュレーションを行うと、ほとんど瞬間的に解が求まります。



ソルバーシミュレーション 4x4の魔方陣


同じようににて、4x4の魔方陣を作成してみます。



条件式は、3x3と同じ、ただし、範囲が異なります。



実行すると、今度は、かなり時間が掛かります。


計算量が(辺数の二乗)の階乗に比例するため、辺の数が多くなると、爆発的に時間が掛かるようになります。
このままの方法では、5x5を試してみようとも思いませんにね。



計算で解く

計算で解く方法はいろいろ紹介されています。下記などを参考にしてください。


 ・魔方陣のとても簡単な作り方〜コツが分かれば小学生でも作れます
 (小学生をバカにしてはいけませんヨ!)
魔方陣について解説 4x4 5x5
魔方陣の作り方と例

ソルバーとは?

ソルバーアドインの組み込み方法


関連



×
PageTop