第18講 一般種法×末項確定法(魔方陣作成マクロVer.4)への挑戦

第4話 番号付けコード例解説その1
まず、1行1行の解説に入る前に今回のコードの核心部分を最初に示しておきましょう。
Sub zhy2(g As Byte)
  Dim i As Byte
  Dim j As Byte
  For i = g + 1 To n - 1
    If a(i, g) = -1 Then
      a(i, g) = gk
      gk = gk + 1
    End If
  Next
  If g + 1 < n Then
    zhy1 (g + 1)
    If tm = 1 Then Exit Sub
  Else
    For i = 0 To n - 1
      For j = 0 To n - 1
        y(a(i, j)) = i
        x(a(i, j)) = j
      Next
    Next

    
tm = 1
    Exit Sub
  End If
End Sub

紺色の部分がこのプログラムの一番枢要な点です。
最初に番号付けを行い、その逆対応で座標を決めようとしています。

10 12
11 14
13 15



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





















はy、はxに、ピンクはiに対応)
つまり、上の表のピンクがa(i, j)に対応し、濃紺がy座標に、がx座標に対応します。
プログラムでは、最初にピンクを作りその番号をy座標とx座標に対応させています。
        y(a(i, j)) = i
        
x(a(i, )) =
が番号と座標との逆対応をさせています。
これは数学でいえば逆関数です。




第3話へ 第5話へ

004
  

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

数学研究室に戻る