1,由于四维数组的行主次序中,映射函数表达式为map(i1,i2,i3,i4)=i1*u2*u3*u4+i2*u3*u4+i3*u4+i4。由此可以得出此数组的行主映射函数表达式为i1*3*2*2+i2*2*2+i3*2+i4.
2.五维函数的行主映射函数为map(i1,i2,i3,i4,i5)=i1*u2*u3*u4*u5+i2*u3*u4+i3*u4*u5+i4*u5+i5。
3.k维数组的行主映射函数为map(i1......ik)=i1*..uk+i2*...uk.
4.可以得知为假设j代表列的值,那么对应的值map(j1,j2,j3)=j1+j2*u1+j3*u2*u1(其中u1,u2代表为数组的列数,第五题第六题同解
7,。很显然,(1)索引为
14 13 12
11 10 9
8 7 6
5 4 3
2 1 0
(2) 公式为map(i1,i2)=u1*u2-1-i1u2-i2.
8和七类似,思路同理
9.假如使用二维数组来存储,则需要m*n*4个字节来存储数据,需要m*4个字节来存储对应的数据数组的头指针,则一共需要m*4*(n+1)个字节,假如用行主映射,则需要m*n*4个字节,比例为n+1/n
10.当使用三维数组来存储的时候,首先需要m*n*p*4个字节来存储数据,并且p数组需要n*m*4个字节存储对应的头地址,m*n则需要m*4个字节存储地址,因此一共需要m*4*(1+n+n*p)个字节。行主映射只需要m*n*p*4个字节。
11.以此类推,11和十二同理