第10講 魔方陣自動生成アプリ
第1話 魔方陣自動生成の考え方
第9講の第11話で、

さて、なぜn次順列の話を今話でしたのでしょうか。
第10講のテーマ名が魔方陣自動生成です。
きっと、賢い方は気がついているはずです。
実は、9次順列や16次順列は直接に魔方陣につながっていることを!
さらに、魔方陣は数独(ナンプレ)に直接つながっています。

という謎めいたことを申し上げました。
魔方陣に繋がる順列は、
9次、16次、25次、36次、・・・
です。
賢い皆さんですから、
数列
9,16,25,36,・・・
の規則性にすでに気がついてらっしゃいますよね。
そうです。
3×3,4×4,5×5,6×6,・・・
です。
なぜ、9次順列などが魔方陣に直接つながるのでしょうか。
またつながるとしてら9次順列は何次魔方陣に直接つながるのでしょうか。

答は、3次魔方陣です。
3次魔方陣を作るには、
9次順列
123456789,123456798,123456879,・・・
を2次元に並べ、
qdf
qwrf
この中で、魔方陣の条件を満たしているものだけを、
表示するようにすれば良いのです。

16次や25次も同様です。
oi

第9講第11話では
int x[25];
と1次元の配列としましたが、
2次元に並べるので、
int m[5][5];
2次元配列にしておきます。
配列名をmに変更したのは、y座標とx座標を導入するためです。
で、問題は人形の次元番号gと
m[y][x]のyとxの関係をどのように実現するかです。
考えて下さい。
答は30行下。




















答え
  
y=g/n;
  
x=g%n;
が正解です。
n=3の場合で考えると、

   0
0
1
2

表の白の番号がgを表し、
yに対応して、
xに対応します。
実際に
0÷3=0・・・0
1÷3=0・・・1
2÷3=0・・・2
3÷3=1・・・0
4÷3=1・・・1
5÷3=1・・・2
6÷3=2・・・0
7÷3=2・・・1
8÷3=2・・・2
ですから、

   0
0
1
2

が実現しています。


第9講第12話へ 第2話へ

a


初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座

初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ