第16講 魔方陣作成の高速化(数万倍へ)

第2話 対角線優先番号付けはいかに可能か

10 11
12 13
14 15


4
10 11
12 13 14
15 16 17 18
19 20 21
4 22 23 24

どのようにしたら、上のような番号付けは可能でしょうか。
私が、サイト上にアップしていたVBA版はかなり複雑です。
ですが、読者の仮屋崎さんから天才的なアイディアがそれられました。
今回それを紹介しましょう。
まず、6次まで拡大されるので、
Dim mah(6, 6) As Byte, x(36) As Byte, y(36) As Byte
と配列の要素数を大きくしておきましょう。
そして、次に
Sub zhy()
   ・
End Sub
内に
Dim a(i,j) As Integer
を用意しておきます。

そして、
@ 各座標から番号へ
A 番号から各座標へ
とします。
@は、a(i,j)に番号を割り振るという意味です。
そして、Aで逆対応をさせて、番号に座標を割り振ります。
さあ、皆さん考えてみましょう。



第1話へ 第3話へ

004
  


VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る