row major
A ( 1 , 1 ) =α
A ( i , 1 ) = α+ ( i - 1 ) u2
A ( i , j ) = α+ ( i - 1 ) u2 + ( j – 1 )

例題:

【問】
設 A ( -3 : 5 , -4 : 2 )
起始位置 A(-3,-4) =100 以列為主排列
問 A (1,1) 所在位置 ?

【解】

u1 = 5-(-3)+1 = 9
u2 = 2-(-4)+1 = 7

i = 1-(-3)+1 = 5
j = 1-(-4)+1 = 6

A(5,6) = 100 + 4 * 7 + 5 = 133 #

 

column major

A ( 1 , 1 ) =α
A ( 1 , j ) = α+ ( j - 1 ) u1
A ( i , j ) = α+ ( j - 1 ) u1 + ( i – 1 )

 

A [ 1 , 1 ,1 ] =αA [ 1 , 1 , k ] =α + ( k – 1 ) u1 u2
A [ 1 , j , k ] =α + ( k – 1 ) u1 u2 + ( j – 1 ) u1
A [ i , j , k ] =α + ( k – 1 ) u1 u2 + ( j – 1 ) u1 + ( i – 1 )

 

例題:

【問】
設 A ( -3 : 5 , -4 : 2 , 1 : 5 )
起始位置 A(-3,-4, 1) =100 以列為主排列
問 A (1,1,3) 所在位置 ?

【解】

u1 = 5-(-3)+1 = 9
u2 = 2-(-4)+1 = 7
u3 = 5- 1 + 1 = 5

i = 1-(-3)+1 = 5
j = 1-(-4)+1 = 6
k = 3- 1 + 1 = 3

A(5,6,3) = 100 + 4 * 7 * 5 + 5 * 5 + 2 = 267 #

 

其他範例

陣列大小 ( a:b , c:d , e:f , g:h )

則 u1 = b-a+1
u2 = d-c+1
u3 = f-e+1
u4 = h-g+1

設陣列起始位置 (w,x,y,z)
起始位置 a

Row Major
Loc(A(i,j,k,l)) = a + (i-w)u2u3u4 + (j-x)u3u4 + (k-y)u4 + (l-z)

Column Major
Loc(A(i,j,k,l)) = a + (l-z)u3u2u1 + (k-y)u2u1 + (j-x)u1 + (i-w)


創作者介紹

Frank's 資訊科技潮流站

finalfrank 發表在 痞客邦 PIXNET 留言(0) 人氣()