第7講 繰り返し処理・if文・配列を総動員して3次魔方陣を自動生成する!
第2話 考え方
いきなり3次魔方陣への挑戦では、
敷居が高すぎですから、
まず、すべての2次方陣を生成することから始めましょう。
2次方陣の1例は
1 | 2 |
3 | 4 |
です。
これは全部でいくつあるでしょうか。
1 | 2 |
4 | 3 |
1 | 3 |
2 | 4 |
1 | 3 |
2 | 4 |
1 | 3 |
4 | 2 |
1 | 4 |
2 | 3 |
・・・
4 | 3 |
2 | 1 |
結局、2次魔方陣の総数は
1234,1243,1324,1342,1423,1432,
2134,2143,2314,2341,2413,2431,
3124,3142,3214,3241,3412,3421,
4123,4132,4213,4231,4312,4321
で、4の順列の総数と同じ24通りです。
4の順列を生成させ、それを2次元に配置すればよいのです。
まず、4のすべての順列を生成させることから始めたいところですが、
初心者には余りにも難しい課題ですから、
2の順列を生成させることからはじめましょう。
これを実現するにはfor文を入れ子式に使います。
入れ子式というのは、
for i in 1..2
・・・・・・
for j in 1..2
・・・・・・
・・・・・・
・・・・・・
end
end
というように、for文の中にfor分を入れて使うということです。
このような使い方を2次元ループといいます。
4次元の世界などというときの、次元と同じ言葉です。
4次元に霊を結びつける人がいますが、
霊の世界とは何の関係もありません。
4次元の意味は、使っている文字が4つという意味です。
今の例は、iとjの2つの文字が出てくるので2次元ループです。
ループがループするので、2次元ループすなわち2重ループというわけです。
ループは回るという意味ですよ。
では皆さん、
に挑戦しましょう。
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
vba 2013 2010 2007 入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門第1部へ
本サイトトップへ