2.一般的理論
何の方針もなく魔方陣を作成しようとしたら、とても歯が立ちません。例えば、アットランダムに数字を入れていって、偶然に縦横斜めの合計が一致するようなプログラムを作ったとすれば、4方陣の段階で最新のペンティアムVマシンを10日間走らせても魔方陣は1つも見つからないでしょう。
さらに、10方陣ぐらいになるとスーパーコンピュータを数千年使用しても1個も作成できないでしょう。数字が1つ増えるだけで問題の難度は飛躍的に難しくなるからです。そこで問題を単純化することが必要となります。
問題を単純化するため、魔方陣の升なかに入れる数字を2つの要素に分解します。n方陣場合、数字をnで割った商と余り(正確に言うとあまりに1加えた数字。)に分解します。そして、2つの升目(1辺がnの升目)を用意してそれぞれの升に商と余りを入れていって、縦横斜めの合計が同じになるようにしてやって、2つのものを合成してやればn方陣が完成します。
4方陣を例に具体的に説明しましょう。4方陣は1から16までの数字を入れて作るのですが、説明のため0から15まで入れることにしましょう(通常の魔方陣にするには、すべてに1を加えるだけでできます。)。例えば、13という数字は
13=4×3+1
ですから商3と余り1に分解できます。合成した数字の縦横斜め合計を一致させようとすると大変困難ですが、2つの要素(商と余り)に分解してそれぞれの要素の縦横斜め合計を同じくするとすれば問題は著しく簡単になります。例えば、下表のようにすれば縦横斜め合計は一致します。
商 余り
|
0 |
1 |
2 |
3 |
2 |
3 |
0 |
1 |
3 |
2 |
1 |
0 |
1 |
0 |
3 |
2 |
|
|
0 |
1 |
2 |
3 |
3 |
2 |
1 |
0 |
1 |
0 |
3 |
2 |
2 |
3 |
0 |
1 |
|
|
そして商に4を掛けそれに右側の同位置の升目の余りを加えます。赤い数字を例に取ると、
4×3+2=14
となります。このようにして合成した表が下のものとなります。
|
0 |
5 |
10 |
15 |
11 |
14 |
1 |
4 |
13 |
8 |
7 |
2 |
6 |
3 |
12 |
9 |
|
|
縦横斜めの合計はすべて、30になっています。さらにすべての升に1加えると、
|
1 |
6 |
11 |
16 |
12 |
15 |
2 |
5 |
14 |
9 |
8 |
3 |
7 |
4 |
13 |
10 |
|
|
|
となり通常の方陣になります。縦横斜めの合計がすべて34になっていることを確認してください。4方陣以外の魔方陣についても同様な考え方できます。
実際の作業やプログラムでは、商と余りに1ずつを加えた以下ような表を使います。
A B
|
1 |
2 |
3 |
4 |
3 |
4 |
1 |
2 |
4 |
3 |
2 |
1 |
2 |
1 |
4 |
3 |
|
|
1 |
2 |
3 |
4 |
4 |
3 |
2 |
1 |
2 |
1 |
4 |
3 |
3 |
4 |
1 |
2 |
|
|
|
そして次のように合成すればTの表が完成します。
4×(4−1)+3=15 U
したがって、実際の作業は1から4までの数字を2つの正方形にそれぞれ4つずつ入れて合計が同じになるようにします(なお表Aと表B対称な関係にあって、Aを商・Bを余りとみても、逆にAを余り・Bを商とみてもよいのです。これからの説明ではAを余り、Bを商とみることが多いと思いますが、逆にみることができるということに注意してください。Aを商・Bを余りとみる場合と、Aを余り・Bを商とみる場合では、作成される魔方陣は別のものになります。A・Bの対称性からA・Bを区別せず、魔方陣種(まほうじんしゅ)または魔方陣の種(たね)と名付けることにします。)。
さらに重要な注意事項があります。Uの式で合成するわけですが、4方陣はそれぞれの升に1から16までの数字が1つずつ入る必要があります。4方陣の中に同じ数字が入っていてはいけないのです。これは表Aをx座標、表Bをy座標としたときに組み合わせ(4,3)は唯一つでなければいけないということを意味しています。A、Bの表の赤以外の組み合わせ(4,3)が存在してはいけないということです。1つでも存在すれば、同じ15ができてしまい、1から16までの各数字が1つずつであるという要求を満たさなくなってしまいます。
つまり(1,1)(4,1)(1,4)(4,4)を頂点とする正方形の各格子点に点が1つずつなければならないということです。このように各格子点に1つだけはいる場合表Aと表Bは互いに独立であると呼ぶことにします。
互いに独立という概念は理解しにくいかもしれませんので、独立でない例を示してみたいと思います。下が独立でない種です。
6 |
3 |
1 |
2 |
4 |
5 |
4 |
2 |
6 |
5 |
1 |
3 |
1 |
5 |
3 |
4 |
6 |
2 |
5 |
4 |
2 |
1 |
3 |
6 |
2 |
6 |
4 |
3 |
5 |
1 |
3 |
1 |
5 |
6 |
2 |
4 |
|
|
5 |
4 |
2 |
1 |
3 |
6 |
2 |
3 |
6 |
4 |
1 |
5 |
6 |
1 |
4 |
3 |
5 |
2 |
1 |
6 |
5 |
2 |
4 |
3 |
3 |
2 |
1 |
5 |
6 |
4 |
4 |
5 |
3 |
6 |
2 |
1 |
|
|
縦横斜めの合計は同じになっています。ところが(6,5)(6,5)というように同じ組み合わせが存在してしまっています。この2つの場所は合成した際に
6×(6−5)+5=30
の計算から同じ数字30になってしまいます。すなわち、1から36までの数字が1つずつ入らなければならないという魔方陣(この場合は6方陣)の基本的な要求を満たさないことになります。
したがって、n方陣種の基本的な要求は3つということになります。
@ 各表には1からnまでの数字がそれぞれn個ずつ入っている。
A 縦横斜めの合計が一致する。
B 2つの表が独立である。
@の要求はABの条件から必然的に出てきます。
種が自分とは独立な種を1つもたない場合、その種から魔方陣を生産することができませんので、不生産的種(ふせいさんてきしゅ)と呼びます。反対に種が自分と独立な種を1つでももつ場合、その種から魔方陣を生産することができますので、生産的種と呼びます。これからの議論では、不生産的種は存在するのか種はすべて生産的なのかということが問題になってきます。
注 ホームページを開設した直後に、「A縦横斜めの合計が一致する」の条件を満たさない解が存在していることが発見された。第5節参照。
|