第5講 4次魔方陣と6次魔方陣の作成
第1話 魔方陣とは?
本サイトは『魔方陣の研究』から始まりました。
それに、右脳数学教育に関する論文やVBA講義やVC++講義などを加えて、
現在の姿になりました。
しばらく更新していませんでしたので、
1日に訪れる方の数はかなり減ってしまいましたが、
それでも1日に2千人から5千程度人の方が、
訪問されています。
最盛期の一番の記録は約2万アクセスでした。
サイトを始める前は一介の田舎高校教諭にすぎない私の各ページが、
Goolgeにおいてダントツのトップにランクされるなどとは、
夢にも考えていませんでした。
さらに、南信州新聞から、私の開発したナンプレ自動生成アプリを使いたいので、
条件を提示してほしいと言われたときには、驚きました。
今では、南信州新聞社と下野新聞社に無料提供して、
南信州と栃木県でナンプレブームが起きていると聞いています。
私が開発したソフトが作る数独を南信州と栃木県の方が、
認知症予防のために、
解いてくださっていることに私は心から感謝しています。
私は、唯物論(正確には実践的唯物論=客観と主観の織りなす弁証法的世界観)の立場をとり、
無神論者ですから、神に感謝しているというわけではありませんが。
より驚愕することは、ど素人の作ったプログラミング講義が、
プログラミングを専門にする会社の正式教材に採用されている場合がいくつかあることです。
人から見たらどうでもよいことに、
こだわってやっていたら、
私に幸いをもたらしました。
下野新聞において私のナンプレの企画が通ったばかりでなく、
昨年の夏休みには、栃木県の3賢人に選ればれ、
私は読書感想文の書き方のついてのアドバイスを小学生にしました。
他の2賢人は、自由研究と工作のアドバイスをしています。
タイピングミスばかりの私が読書感想文講座もやっているなんて、
笑っている方もいらっしゃいますよね。
ですが、私は教え子を栃木県のトップ=2万4千人の頂点に導いた体験を持っています。
数学の先生がなぜ読書感想文の指導をしているの?
とよく言われますが、
これは偏見以外の何物でもありません。
理系出身の作家が少なくないことは皆さんご存じですよね。
東野圭吾もそうですが、
世界的な文豪であるスタンダールは村始まって以来の数学の天才でした。
フランスにおいて美文の基礎を築いて人は数学者のデカルトです。
数学を愛した文豪は、皆さんが予想するより遙かに多いのです。
芥川龍之介・正岡子規・二葉亭四迷・石川達三などの日本人作家だけでなく、
ダ・ヴィンチコードのダン・ブランや詩人・思想家であるヴァレリ-などもそうです。
ごめんなさい。
また脱線しました。
話を元に戻しましょう。
どうでもよいことの1つに魔方陣があります。
私は県立高校の教諭になる前に塾教師をやっていて、
中学生に魔方陣の作り方を教えたら、
「先生、こんなことやって何になるですか?」
と言われたことを何十年もたった今でも鮮明に覚えています。
さて、その魔方陣とは何でしょうか。
魔方陣の例を挙げると
8 | 1 | 6 |
3 | 5 | 7 |
4 | 9 | 2 |
1 | 6 | 11 | 16 |
15 | 12 | 5 | 2 |
8 | 3 | 14 | 9 |
10 | 13 | 4 | 7 |
1 | 7 | 13 | 19 | 25 |
18 | 24 | 5 | 6 | 12 |
10 | 11 | 17 | 23 | 4 |
22 | 3 | 9 | 15 | 16 |
14 | 20 | 21 | 2 | 8 |
何であるかわかりますか。
まず、方陣とは正方形という意味です。
それぞれ、一辺が3と4と5のものを例示しています。
特徴は、横合計(行合計)・縦合計(列合計)・対角線合計がすべて等しいということです。
一辺が奇数のときには、魔方陣の法則と言われる一般的な作成方法が知られています。
しかし、偶数方陣には万能の方法はないとされていました。
実は、私は偶数における万能の方法を発見していますが、
その発見のきっかけとなったものが、
今から紹介する4次魔方陣と6次魔方陣の作成方法です。
4次と6次については簡単な作成方法があるのです。
4次魔方陣の方から説明しましょう。
まず、普通の自然配列を考えます。
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 |
この段階ですでに対角線の合計が34になっています。そして、
1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 |
対角線のところを4次方陣の真ん中を中心にして点対称移動をしてみましょう。
16 | 2 | 3 | 13 |
5 | 11 | 10 | 8 |
9 | 7 | 6 | 12 |
4 | 14 | 15 | 1 |
16 | 2 | 3 | 13 |
5 | 11 | 10 | 8 |
9 | 7 | 6 | 12 |
4 | 14 | 15 | 1 |
そうすると不思議なことに、すべての横合計、縦合計が同じ34になっています。
つまり、4次魔方陣が完成してしまったわけです。
6次魔方陣になるともう少し複雑ですが、似た方法でできます。
最初に自然配列を作ります。
1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 |
そして、
1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | 35 | 36 |
ピンクは中心に対して点対称移動、
薄緑は中央の直線に対して上下に線対称移動、
紺色は中央の直線に対して左右に線対称移動
を行います。すると、
36 | 32 | 4 | 3 | 5 | 31 |
12 | 29 | 27 | 10 | 26 | 7 |
19 | 17 | 22 | 21 | 14 | 18 |
13 | 20 | 16 | 15 | 23 | 24 |
25 | 11 | 9 | 28 | 8 | 30 |
6 | 2 | 33 | 34 | 35 | 1 |
36 | 32 | 4 | 3 | 5 | 31 |
12 | 29 | 27 | 10 | 26 | 7 |
19 | 17 | 22 | 21 | 14 | 18 |
13 | 20 | 16 | 15 | 23 | 24 |
25 | 11 | 9 | 28 | 8 | 30 |
6 | 2 | 33 | 34 | 35 | 1 |
となり6次魔方陣が完成します。
皆さんはこの話を面白いと感じましたか。
もし、中学生と同じく「こんなことやって何なんですか」と感じる方は、
VBAでプログラミングに挑戦している皆さんですから、
いらっしゃらないと思いますが、
仮にいたとすれば大変申し訳ないのですが、
その方はAI(人工知能)時代において最初にリストラされてしまう方です。
AIが奪う仕事はすべて実学系統です。
つまり、それを学べば何の役に立つかわかる学問系統です。
例えば、経営学です。
ですが、アメリカにおいてはすでに公認会計士の大量リストラが発生しています。
公認会計士を雇ったり、公認会計士に仕事を依頼するより、
ソフトを一本買った方が経費が安く済むのです。
魔方陣の話を聞いて「へっ-、おもしろい」と感じた方は、
AI時代にリストラされずに生きていける方です。
私は、数学の高校教諭でしたから高校生から、
「三角関数なんて社会に出たら何の役にもたたないよね。」
という言葉を嫌というほど聞かされました。
三角関数なんて学んだって意味がないと思う人は、
その三角関数によってリストラされる運命を辿るのです。
なぜなら、AIとは微分・積分や三角関数の塊なのです。
三角関数が存在してはじめてAIは可能になったのです。
基礎を学んだときに面白いと感じられる人がだけが、
AI時代の勝者になれるのです。
数学・哲学・歴史など一見それを学んでも何の役にも立たないように見える学問を身につけた者のみが、
AI時代に生き残れる人なのです。
皆さん、文学でも政治学でも言語学でも好き嫌いなく学びましょう。
何の役に立つのかわからない学問をやった者が勝利者になる時代です。
さて、意欲的な皆さんは4次魔方陣作成のプログラミングから始めたいでしょうが、
これは初心者には乗り越えるのが難しい障壁ですから、
順を追って実現していきます。
まず、次の添付ファイルを開いてください。
参考ダウンロード添付ファイル
するとシートとVBAのコードは
Private Sub CommandButton1_Click()
CommandButton2_Click
Dim a As Integer, b As Integer
a = 5
b = 3
Cells(3, 2) = "a="
Cells(3, 3) = a
Cells(4, 2) = "b="
Cells(4, 3) = b
End Sub
Private Sub CommandButton2_Click()
Rows("3:2000").Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
となっています。
aとbのデータを交換して、実行画面が
となるようにしてください。
簡単な課題に見えますが、どでしょうか。
うまくいくまで粘ってください。
ヒントは第3の箱(変数)が必要ということです。
第4講第8話へ 第2話へ