第2講 再帰的呼び出しで魔方陣を作ろう!
第2話 1次元を2次元に対応させるには?

n = 3 のとき

n = 4 のとき

 0  1  2  3
 0  1  2  3
 4  5  6  7
 8  9 10 11
12 13 14 15

1次元であるgと2次元添え字(i,j)を対応させるにはどうしたよいでしょうか。
これからもよく使うテクニックですが商とあまりを使えば、
簡単に関連づけられます。
n = 3でもn = 4でも、あるいはい一般に
iはgをnで割ったときの余り、
jはgをnで割ったときの商になっています。
例えば、n = 4のときのgの9をnである4で割ったとき、
余りは、商はで見事に対応しています。

よって、プログラムソースは
i = g mod n
j = int( g / n )
とすればよいのです。
g mod nはgをnで割ったときの余りを求める式です。
g / nは小数になりますが、intによって小数部分を切り捨てれば商となります。
intは小数部分を切り捨てて整数にするものです。
だから、例えば
int ( 3.141564 ) = 3
となります。


第2講第1話へ
 第2講第3話へ


VB入門講義応用編トップへ

VB入門講義トップへ