102資料處理大意問題 - 考試
By Madame
at 2014-01-08T19:32
at 2014-01-08T19:32
Table of Contents
※ 引述《Knight1027 (Knight1027)》之銘言:
: 假設M為一個二維陣列,M(3,2)的位址是1110,M(2,3)的位址是1115。
: 假設每一個元素占一單位,陣列M宣告為M(m,n),請問下列?述何者正確?
: (A)M(5,4)的位址在1138 (B)M(2,2)的位址在1106 (C)m的值為9 (D)M(1,4)的位址在1120
: 答案為:(D)
: 小弟想請高手大大們幫忙解惑~~感謝!!
M
1 2 3 4
┌──┬──┬──┬──┬
│ │ │ │ │
1│ │ │ │ │
├──┼──┼──┼──┼
│ │ │1115│ │
2│ │ │ │ │
├──┼──┼──┼──┼
│ │ │ │ │
3│ │1110│ │ │
├──┼──┼──┼──┼
│ │ │ │ │
4│ │ │ │ │
├──┼──┼──┼──┼
把簡單的二維矩陣搭配題目畫出來之後
可以發現
這個矩陣排的列方式是 column-major
因為一個位址是1個記憶體空間
所以可以得知M(2,2)是1110-1=1109
1110+m=1115
m=6
把M的行數算出來之後
剩下的選項就可以求出來了
1 2 3 4
┌──┬──┬──┬──┬
│ │ │ │ │
1│1102│1108│1114│1120│
├──┼──┼──┼──┼
│ │ │ │ │
2│1103│1109│1115│1121│
├──┼──┼──┼──┼
│ │ │ │ │
3│1104│1110│1116│1122│
├──┼──┼──┼──┼
│ │ │ │ │
4│1105│1111│1117│1123│
├──┼──┼──┼──┼
│ │ │ │ │
5│1106│1112│1118│1124│
├──┼──┼──┼──┼
│ │ │ │ │
6│1107│1113│1119│1125│
└──┴──┴──┴──┴
如果要寫的正式一點
每個元素佔一個位址 所以c=1
要先判斷是row-major 或是 column-major
如果是row-major
則 Loc(A(3.2))-Loc(A(2,3))=c[(3-2)W+(2-3)]
1110-1115=W-1=-5
得W=-4
但因為每一維的大小都必須>0
所以並不是row-major
所以
Loc(M(3,2))-Loc(M(2,3))=c[(3-2)+(2-3)W]
1110-1115=1-W
得W=6
所以這陣列是column-major
且m=W=6
再計算
Loc(M(5,4))=Loc(M(3,2))+c[(5-3)+(4-2)m]
=1110+2+2*6=1124
Loc(M(2,2))=Loc(M(3,2))+c[(2-3)+(2-2)m]
=1110+(-1)+0*6=1109
Loc(M(1,4))=Loc(M(3,2))+c[(1-3)+(4-2)m]
=1110+(-2)+2*6=1120
--
█ █ ████ ▁▃▄▅▆▇█
█ █ █ █ ▊
█ █ █ ▋
█ █ █ █ ▌▂▃▄▅ ▁
█ █ █ █ █ █ ▍ ▕飛▏
█ █ ████ ▎  ̄
--
: 假設M為一個二維陣列,M(3,2)的位址是1110,M(2,3)的位址是1115。
: 假設每一個元素占一單位,陣列M宣告為M(m,n),請問下列?述何者正確?
: (A)M(5,4)的位址在1138 (B)M(2,2)的位址在1106 (C)m的值為9 (D)M(1,4)的位址在1120
: 答案為:(D)
: 小弟想請高手大大們幫忙解惑~~感謝!!
M
1 2 3 4
┌──┬──┬──┬──┬
│ │ │ │ │
1│ │ │ │ │
├──┼──┼──┼──┼
│ │ │1115│ │
2│ │ │ │ │
├──┼──┼──┼──┼
│ │ │ │ │
3│ │1110│ │ │
├──┼──┼──┼──┼
│ │ │ │ │
4│ │ │ │ │
├──┼──┼──┼──┼
把簡單的二維矩陣搭配題目畫出來之後
可以發現
這個矩陣排的列方式是 column-major
因為一個位址是1個記憶體空間
所以可以得知M(2,2)是1110-1=1109
1110+m=1115
m=6
把M的行數算出來之後
剩下的選項就可以求出來了
1 2 3 4
┌──┬──┬──┬──┬
│ │ │ │ │
1│1102│1108│1114│1120│
├──┼──┼──┼──┼
│ │ │ │ │
2│1103│1109│1115│1121│
├──┼──┼──┼──┼
│ │ │ │ │
3│1104│1110│1116│1122│
├──┼──┼──┼──┼
│ │ │ │ │
4│1105│1111│1117│1123│
├──┼──┼──┼──┼
│ │ │ │ │
5│1106│1112│1118│1124│
├──┼──┼──┼──┼
│ │ │ │ │
6│1107│1113│1119│1125│
└──┴──┴──┴──┴
如果要寫的正式一點
每個元素佔一個位址 所以c=1
要先判斷是row-major 或是 column-major
如果是row-major
則 Loc(A(3.2))-Loc(A(2,3))=c[(3-2)W+(2-3)]
1110-1115=W-1=-5
得W=-4
但因為每一維的大小都必須>0
所以並不是row-major
所以
Loc(M(3,2))-Loc(M(2,3))=c[(3-2)+(2-3)W]
1110-1115=1-W
得W=6
所以這陣列是column-major
且m=W=6
再計算
Loc(M(5,4))=Loc(M(3,2))+c[(5-3)+(4-2)m]
=1110+2+2*6=1124
Loc(M(2,2))=Loc(M(3,2))+c[(2-3)+(2-2)m]
=1110+(-1)+0*6=1109
Loc(M(1,4))=Loc(M(3,2))+c[(1-3)+(4-2)m]
=1110+(-2)+2*6=1120
--
█ █ ████ ▁▃▄▅▆▇█
█ █ █ █ ▊
█ █ █ ▋
█ █ █ █ ▌▂▃▄▅ ▁
█ █ █ █ █ █ ▍ ▕飛▏
█ █ ████ ▎  ̄
--
Tags:
考試
All Comments
By Hedda
at 2014-01-12T11:32
at 2014-01-12T11:32
Related Posts
刑法-違背義務之危險前行為 不大懂...
By Kelly
at 2014-01-08T16:27
at 2014-01-08T16:27
中華電信考場疑問
By Bethany
at 2014-01-08T16:26
at 2014-01-08T16:26
中華電信考試疑問
By Poppy
at 2014-01-08T16:11
at 2014-01-08T16:11
102地特五等公民
By Edwina
at 2014-01-08T15:12
at 2014-01-08T15:12
102地特五等公民
By Faithe
at 2014-01-08T14:54
at 2014-01-08T14:54