17 若四維陣列 A[-2:3,0:2,2:5,1:5]是以列主序(Row-major)的方式排列資料,而此陣列在記憶體中的初始位 置為 500,且陣列中的每個元素的儲存皆需要 4 個位元組(Bytes)。請問陣列 A[0,1,4,2]存放在記憶體中的位置始於多少?
(A) 820
(B) 824
(C) 1104
(D) 1108

答案:登入後查看
統計: A(33), B(96), C(206), D(68), E(0) #2129597

詳解 (共 5 筆)

#4563374

不知道還來不來得及

看看這樣解釋你有沒有比較了解

分成A[第幾學期、學期初中末、同學、考科分數]

寫起來,假設啦成績如下

     小明     小美      小王     小天

  80       90         30       60

  90       70         45       70

  86       84         60       65

  85       65         70       45

  83       50         59       62

這是第「一」學期「剛開始」的時候,

老師給他們測驗的模考成績

這個陣列的表達就是:A[0,0,0,0]=80

白話文: 第一學期 剛開始 小明 的 第一個科目成績=80

Row-Major講明了就是由上而下去排列

那以此類推A[0,0,0,1]就是:?

嘿沒錯,第一學期 剛開始 小明的 第二個科目成績=90

————————————————————————

講了這麼多,題目怎麼算?

A[-2~3, 0~2, 2~5, 1~5]

且位置500是指向陣列的第一個項目的位置!

A[-2,0,2,1]=500!!!

我答案要我求什麼?A[0,1,4,2]嘛對不對

來想像查詢成績!!!

那我們要把「差距」找出來

我們目前要求陣列A[0,1,4,2]是對應到

#以-2為開始的學期數目!

什麼意思???

-2和0我們同時兩邊加上2,不就是0和2了嗎?

這樣代表我只要求第「3個學期的成績表嘛!」

#並以0為開始的 期初中末 成績排列嘛,我要求A[0,1,4,2]代表

要求第三個學期 的 期「中」 成績表嘛

再來再來⋯⋯⋯⋯A[0,1,4,2]就是我要第個學生 小王 的成績對不對?

最後就是我要他的英文成績嘛!

建立這樣的觀念就比較好解釋了


第一個學期的學期初中末 的學生科目成績需要幾格

四個學生*五個科目= 20格

求第三個學期?怎麼算

第一學期全部格數 +第二學期 全部格數+第三學期 你要的位置前的格數

20*3(初中末)*     + 20*3(初中末)    + (期初20格+期中的17格)

一共157格

好第一格位置是500!那第157格?答案是500+156*4bit =1104!

60379a1aaaf51.jpg

15
3
#3930753
A[-2,0,2,1] = 500 A...
(共 202 字,隱藏中)
前往觀看
10
0
#5398478
A[-2:3,0:2,2:5,1:5]陣...
(共 142 字,隱藏中)
前往觀看
10
0
#5350237
A[-2:3,0:2,2:5,1:5] ...
(共 154 字,隱藏中)
前往觀看
5
0
#3731537
請問大大,這題如何解?
(共 13 字,隱藏中)
前往觀看
3
1

私人筆記 (共 1 筆)

私人筆記#3924484
未解鎖
A[-2:3,0:2,2:5,1:5] ...
(共 152 字,隱藏中)
前往觀看
1
0