第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の順列を生成させることからはじめましょう。

iyy

これを実現するには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重ループというわけです。
ループは回るという意味ですよ。
では皆さん、
iyy
に挑戦しましょう。

第1話へ 第3話へ
004


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部へ
本サイトトップへ