史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2009-10-06, 07:08 PM  
9319074
註冊會員
 
9319074 的頭像
榮譽勳章

勳章總數
UID - 331648
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2009-10-05
文章: 90
精華: 0
現金: 32 金幣
資產: 156 金幣
Exclamation 疑問 - 懂java陣列的人來幫忙一下吧,感恩 [圖已經附上]



假設有一陣列A,其A(0,0)與A(2,2)的位址分別在(1024)8與(1244)8,求A(3,3)的位址(以8進位表示)。(PS.1024和1244後面那個8是8進位)

有一二維陣列A(0:m-1,0:n-1),假設A(3,2)在1110,而A(2,3)在1115,若每個元素佔一個空間,請問A(1,4)所在的位址。

(還有兩題,可是都是矩陣圖,因為我家沒掃瞄機貼上圖,所以要等我去圖書館在貼上去)。

到時我會在補充。

==分隔線==

如圖圈起來的部分題目:

http://img4.imageshack.us/img4/9421/89551805.jpg

(ps.我事先有算過,算不出來,才來問大家的。)

此帖於 2009-10-09 11:06 AM 被 9319074 編輯. 原因: 已解
9319074 目前離線  
送花文章: 35, 收花文章: 44 篇, 收花: 48 次
回覆時引用此帖
向 9319074 送花的會員:
magicwoo (2009-10-07)
感謝您發表一篇好文章
舊 2009-10-09, 01:06 AM   #16 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

第一題
A(0,0)位於 1204(8)= 644(10)
A(2,2)位於 1244(8)= 676(10)

2者的位置相差了 32....

而題目並沒有提到 每個元素佔用多少空間,因此一般來說, d=1

接著我們得先算出 陣列的大小


依照你的書本...第二張圖的公式

若陣列大小為:A(s1 : u1, s2 : u2)
則...
陣列的列數為:u1 - s1 + 1
陣列的行數為:u2 - s2 + 1

而計算位址A(i,j)的公式為
A0 + ((i - s1) * n * d) + (( j - s2 ) * d)
或是
A0 + ((i - s2) * m * d) + (( j - s1 ) * d)

用第一種來算的話...
因為A(0,0)一般來說是最小的位置,再加上課本沒有額外設定 負數的座標,所以可以確定
s1=0, s2=0

將A(2,2)帶進公式計算
676 = 644 + ((2 - s1) * n * 1) + (( 2 - s2 ) * 1)
32 = (2 - s1)n + 2 - s2
30 = (2 - s1)n - s2
0 = (2 - s1)n - s2 - 30
0 = 2n - 30
n = 15 (行數有15行)

最後可以知道陣列大小為 A(0:m, 0:14)

也因為題目只問到A(3,3),所以可以假設 m為4 ~ 無限大...
也就是說整個陣列是...
A(0:3, 0:14)
A(0:4, 0:14)
A(0:5, 0:14)
...
...
A(0:100, 0:14)
...
A(0:無限大, 0:14)

故...一個一個列出來的話...
A(0:0) = 644
A(0:1) = 645
...
A(0:10) = 654
...
A(0:14) = 658
A(1:0) = 659
A(1:1) = 660
...
A(1:14) = 673
A(2:0) = 674
A(2:1) = 675
A(2:2) = 676
...
A(2:14) = 688
A(3:0) = 689
A(3:1) = 690
A(3:2) = 691
A(3:3) = 692(10進位) = 1264(8進位)


如果要直接套公式...

計算位址A(3,3)的公式
A0 + ((i - s1) * n * d) + (( j - s2 ) * d)
= 644 + ((3 - 0) * 15 * 1) + (( 3 - 0 ) * 1)
= 644 + 45 + 3
= 692(10進位) = 1264(8進位)


================================
我在算題目時,基本上是不用公式的,
但你現在學的還沒有到程式部份,還是理論,所以必須要去了解公式在寫些什麼...
不然後面什麼都不用玩了...

課本的題目都是依順序排列的,
第一題沒有算出來,第二題一定看不懂,第三題也不用看了...
後面就都完了...

(公式看不懂要問老師, 不要什麼都不問, 再不然問妹妹也可以呀)
__________________
姜太公釣魚~ 願者上鉤
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
有 2 位會員向 cwvdavid 送花:
9319074 (2009-10-09),magicwoo (2009-10-09)
感謝您發表一篇好文章
舊 2009-10-09, 02:01 AM   #17 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

第三題,
用公式來導...

A(0: m-1, 0:n-1)
已知 s1 = 0, s2 = 0

接著已知 A(3,2) 在1110, A(2,3) 在1115
且元素佔一個空間,意即 d = 1


帶入公式(我繼續用第一題的公式)
A(i,j) = A(0,0) + ((i - s1) * n * d) + (( j - s2 ) * d)
A(i,j) = A(0,0) + ((i - 0) * n * 1) + (( j - 0 ) * 1)
A(i,j) = A(0,0) + (i * n) + j
(以上是簡化後的結果)

A(3,2) = A(0,0) + (3 * n) + 2 = 1110
→ A(0,0) + (3 * n) + 2 = 1110
→ A(0,0) + (3 * n) = 1108
→ A(0,0) = 1108 - (3 * n)

A(2,3) = A(0,0) + (3 * n) + 2 = 1115
→ A(0,0) + (2 * n) + 3 = 1115
→ A(0,0) + (2 * n) = 1112
→ A(0,0) = 1112 - (2 * n)

再將2者 拿來比較
1108 - (3 * n) = 1112 - (2 * n)
1108 - n = 1112

可以得到 n = -4 ...(行數是-4.........)

...到這裡出了問題了
因此,這個陣列【並不是 以列為主

========================
算我倒楣!!(對你來說是幸運,可以看到用錯公式時的情形)
...
所以,再重算一次,改用另一個公式,以行為主

A(i,j) = A(0,0) + ((j - s2) * m * d) + (( i - s1 ) * d)
A(i,j) = A(0,0) + ((j - 0) * m * 1) + (( i - 0 ) * 1)
A(i,j) = A(0,0) + (j * m) + i
(以上是簡化後的結果)

A(3,2) = A(0,0) + (2 * m) + 3 = 1110
→ A(0,0) + (2 * m) + 3 = 1110
→ A(0,0) + (2 * m) = 1107
→ A(0,0) = 1107 - (2 * m)

A(2,3) = A(0,0) + (3 * m) + 2 = 1115
→ A(0,0) + (3 * m) + 2 = 1115
→ A(0,0) + (3 * m) = 1113
→ A(0,0) = 1113 - (3 * m)

1107 - (2 * m) = 1113 - (3 * m)
1107 = 1113 - m
m = 6 因此...陣列大小A(0 : m-1, 0 : n-1)

就是 A(0:5, 0: n-1)
由於題目只問到 A(1:4),所以 n 大於 4... n=5,6,7... n=無限大 也可以
(在這裡... n 用不到了...)

接下來,算一下A(0,0)的位置...
A(3,2) = A(0,0) + (2 * m) + 3 = 1110
A(3,2) = A(0,0) + (2 * 6) + 3 = 1110
A(3,2) = A(0,0) + 15 = 1110
A(0,0) = 1110 - 15 = 1095


A(2,3) = A(0,0) + (3 * m) + 2 = 1115
A(2,3) = A(0,0) + (3 * 6) + 2 = 1115
A(2,3) = A(0,0) + 20 = 1115
A(0,0) = 1115 - 20 = 1095

經由上面2個座標比對,確定A(0,0)是1095

最後,再計算 A(1,4)的值
A(1,4) = A(0,0) + (j * m) + i
A(1,4) = 1095 + (4 * 6) + 1
A(1,4) = 1095 + 25
A(1,4) = 1120 !!!!


(明明應該是你自己要看的公式,你自己都掃瞄了,也貼上來了
結果變成是我得幫你寫出來...........唉..........)

上面這一題的陷阱就是 【以行為主】 v.s 【以列為主】
而要弄的懂,最好是把第二題,也算一算....

也就是說:最好是從第一題開始算,算完之後再算第二題,再算第三題...
當你全部的習題都會算的時候,你這一章才能算是 真的了解了....

而你如果中間的題目就這麼跳過去,不看了,
那你後面的章節只會更痛苦.....

(很多資工科系,資管科系的學生  之所以會裁在程式設計的課程,
就是因為一開始沒弄懂,後面更痛苦,最後放棄....)
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
有 2 位會員向 cwvdavid 送花:
9319074 (2009-10-09),magicwoo (2009-10-09)
感謝您發表一篇好文章
舊 2009-10-09, 03:36 AM   #18 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

引用:
作者: 9319074 查看文章
關於第三題,我是看懂了,然後接下來?

你打的:(以上要先看的懂才能繼續往下講,所以...你先吸收一下吧)


上面的公式算法講完,
接下來講一般的(當你不知道公式,而又需要了解陣列計算結果時,
用Excel來模擬是最方便的)

Excel 是由 A,B,C,D..以及1,2,3,4所組成的表格,
其呈現方式就如同二維陣列一樣

A1, B1, C1, D1.....
A2, B2, C2, D2.....
A3, B3, C3, D3.....


因此,用Excel來模擬陣列配置時,就可以配置出
[A,1], [B,1], [C,1], [D,1], [E,1], [F,1], [G,1], [H,1]...
[A,2], [B,2], [C,2], [D,2], [E,2], [F,2], [G,2], [H,2]...
[A,3], [B,3], [C,3], [D,3], [E,3], [F,3], [G,3], [H,3]...
[A,4], [B,4], [C,4], [D,4], [E,4], [F,4], [G,4], [H,4]...
[A,5], [B,5], [C,5], [D,5], [E,5], [F,5], [G,5], [H,5]...
...
...(上面的A1, B1, C1,就是下面陣列的 A[0,0], A[1,0], A[2,0]
...已經知道A[2,3]是1115以及A[3,2]是1110時,就把數字填到上面的Excel方格內
...填入
...再直接用人工去一格一格的算
...
A[0,0],A[1,0],A[2,0],A[3,0],A[4,0] ....
A[0,1],A[1,1],A[2,1],A[3,1],A[4,1] ....
A[0,2],A[1,2],A[2,2],A[3,2],A[4,2] ....
A[0,3],A[1,3],A[2,3],A[3,3],A[4,3] ....
A[0,4],A[1,4],A[2,4],A[3,4],A[4,4] ....



我再幫你畫一張圖好了(用Excel模擬的)
http://img79.imageshack.us/img79/409/22744518.png

此帖於 2009-10-09 03:48 AM 被 cwvdavid 編輯.
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
9319074 (2009-10-09)
感謝您發表一篇好文章
舊 2009-10-09, 04:05 AM   #19 (permalink)
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

第5題

A(1) = A[1,1]
A(2) = A[1,2]
A(3) = A[2,2]
A(4) = A[2,1]

===========

A(5) = A[1,3]
A(6) = A[2,3]
A(7) = A[3,3]
A(8) = A[3,2]
A(9) = A[3,1]

===========

A(10) = A[1,4]
A(11) = A[2,4]
A(12) = A[3,4]
A(13) = A[4,4]
A(14) = A[4,3]
A(15) = A[4,2]
A(16) = A[4,1]

===========

A(17) = A[1,5]
A(18) = A[2,5]
A(19) = A[3,5]
A(20) = A[4,5]
A(21) = A[5,5]
A(22) = A[5,4]
A(23) = A[5,3]
A(24) = A[5,2]
A(25) = A[5,1]
...
...
以此類型,自己找一下數值之間的共通性吧
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
向 cwvdavid 送花的會員:
9319074 (2009-10-09)
感謝您發表一篇好文章
舊 2009-10-09, 08:14 AM   #20 (permalink)
註冊會員
 
9319074 的頭像
榮譽勳章

勳章總數
UID - 331648
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2009-10-05
文章: 90
精華: 0
現金: 32 金幣
資產: 156 金幣
預設

第一和第三題我是用推論的方法求出來的,

可以看15樓我說的。

第五題我是知道他是反英文字母L的累加,可是不知怎算而已。

因為老師是用點題目的方式叫我們寫作業0.0

我把我課堂的狀況用E貓告訴老師了,而且老師知道我的學習狀況了。
9319074 目前離線  
送花文章: 35, 收花文章: 44 篇, 收花: 48 次
回覆時引用此帖
舊 2009-10-09, 08:17 AM   #21 (permalink)
註冊會員
 
9319074 的頭像
榮譽勳章

勳章總數
UID - 331648
在線等級: 級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
註冊日期: 2009-10-05
文章: 90
精華: 0
現金: 32 金幣
資產: 156 金幣
預設

我1、3題我用我的推論方法寫出來交作業好了,

讓老師知道我學習狀況,你的解答,我還是會參考一下
9319074 目前離線  
送花文章: 35, 收花文章: 44 篇, 收花: 48 次
回覆時引用此帖
向 9319074 送花的會員:
cwvdavid (2009-10-09)
感謝您發表一篇好文章
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
心測 - 衣服顏色看你走什麼運 crd1871 星座命理討論區 5 2007-08-20 02:03 AM
最近想買notebook, 有經驗的人來幫忙討論一下唄... vanderwall 硬體疑難使用問題討論區 3 2004-10-07 10:33 PM


所有時間均為台北時間。現在的時間是 08:58 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1