Re: [問題] 102資料處理大意問題

看板Examination作者 (大飛)時間12年前 (2014/01/08 19:32), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《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 -- █ █ ████ ▁▃▄▅▆▇█ █ █ █ █ █ █ █ █ █ ▌▂▃▄▅ █ █ █ █ █ █ ▕飛▏ █ █ ████ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.47.179.160 ※ 編輯: WCFEI 來自: 114.47.179.160 (01/08 19:33) ※ 編輯: WCFEI 來自: 114.47.179.160 (01/08 19:33)

01/09 01:19, , 1F
這學期初才教!!(我大二
01/09 01:19, 1F
文章代碼(AID): #1IpJTcVn (Examination)