討論區快速選單
知識庫快速選單
網路投保旅行平安險 掌握Salesforce雲端管理秘訣
[ 回上頁 ] [ 討論區發言規則 ]
河內塔 (Towers of Hanoi) 的程式設計練習題, 你學到了甚麼 ?
更改我的閱讀文章字型大小
作者 : fcwang(fortran) 程式設計甘苦談優秀好手貼文超過200則
[ 貼文 231 | 人氣 2831 | 評價 2440 | 評價/貼文 10.56 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/12/2 下午 10:40:02
河內塔 (Towers of Hanoi) 的程式設計練習題, 你學到了甚麼 ?

A. 數學解答 -- 3 柱 (peg)的河內塔, 3 個盤子要移動 7 次, 4 個盤子要移動 15 次, 5 個盤子要移動 31 次, ...., n 個盤子要移動 n**2 - 1 次

B. 程式技巧 -- Recurrsive 程式是怎麼回事 ?

C. 資料結構 -- Stack 用來儲存 Recurrsive 程式的計算過程.

D. 系統分析的方法 --- 用 Abstraction 與 Model 來分析與解決問題, 與 子曰 " 吾道一以貫之" 觀念相通.

你的答案是甚麼 ?

許多人直覺這個題目是不是浪費青春 ? IT 職場上, 不會用上.

有些人卻一生享用不盡的是 "Abstraction" 與 "Model" 的觀念.
作者 : jasper(Jasper)討論區板主 程式設計甘苦談頂尖高手上班族的哈拉園地優秀好手貼文超過1000則人氣指數超過70000點
[ 貼文 1408 | 人氣 96053 | 評價 6990 | 評價/貼文 4.96 | 送出評價 42 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/12/12 上午 10:02:23
>D. 系統分析的方法 --- 用 Abstraction 與 Model 來分析與解決問題, 與 子曰 ' 吾道一以貫之' 觀念相通.
>
>你的答案是甚麼 ?
>
>許多人直覺這個題目是不是浪費青春 ? IT 職場上, 不會用上.
>
>有些人卻一生享用不盡的是 'Abstraction' 與 'Model' 的觀念.

我的答案會是 B 與 C,或許這個問題就是出現在資料結構這門課上的關係吧!

我倒沒有去想過這個問題與系統分析的方法中間的關聯性,或許該去想一想吧!

用不上是否就代表浪費青春,話不該這樣說吧!萬物皆有用處,只是不知道如何運用吧!也有可能是未碰上使用時機吧!
作者 : fcwang(fortran) 程式設計甘苦談優秀好手貼文超過200則
[ 貼文 231 | 人氣 2831 | 評價 2440 | 評價/貼文 10.56 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2011/12/31 下午 06:13:09
解河內塔問題的基本觀念 是以 2 個盤子為 Model 來看問題, 以三柱(3 Pegs)的情況, 解答只有三個步驟.
如果是 N 個盤子 (2 個盤子以上)的場合, 則以最底層的盤子與上面 N -1 個盤子當成兩個集合來處理, 與兩個盤子一樣需 3 個步驟. 由 N 個盤子簡化成兩個集合來處理. 然後用相同模式, 由 N -1 個盤子再解 N -2 個盤子的相同命題.
然後 再以相同模式處理 N-1 個盤子的場合, 同理類推, 直到兩個盤子.
如同祖, 父, 子, 孫, 不論幾代都可歸類為父與子的關係來看. 這就是抽象化 (Abstraction)的觀念.

"抽象化" 就是去除不重要的說明, 把精要的內容保留. 比較淺顯地說就是"簡化". 例如, 台北捷運的路線圖就是大台北地區街道圖之抽象化的代表,

假若一家工程營造公司的需求是 "工時管理" 與 "機具管理", 以講求成本管制. 如果你設計兩套系統來符合這業主的要求並無不妥.
但是如果把這兩個需求 "先抽象化"處理, 你會發現以一套資源管理的 Model就可以搞定. 因為人力 與 機具 都是屬於資源, 而且都可依使用時間計價.

這與尋求解決河內塔問題的 Model之觀念相通, 合乎 子曰 " 吾道一以貫之".
作者 : jasper(Jasper)討論區板主 程式設計甘苦談頂尖高手上班族的哈拉園地優秀好手貼文超過1000則人氣指數超過70000點
[ 貼文 1408 | 人氣 96053 | 評價 6990 | 評價/貼文 4.96 | 送出評價 42 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/1/1 下午 04:44:11
這陣子在研讀設計模式,對 "Abstraction", "Interface", "Model" 是比較有感覺。坦白講,以前只專注在問題的解決,並沒有考慮用那種方式會妥善,在系統設計上就沒下過功夫,說來還真是慚愧。

2012 年的元旦,經前輩這一點,受教了!感謝!
作者 : fcwang(fortran) 程式設計甘苦談優秀好手貼文超過200則
[ 貼文 231 | 人氣 2831 | 評價 2440 | 評價/貼文 10.56 | 送出評價 6 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/1/6 下午 02:15:08

>這陣子在研讀設計模式,對 'Abstraction', 'Interface', 'Model' 是比較有感覺。坦白講,以前只專注在問題的解決,並沒有考慮用那種方式會妥善,在系統設計上就沒下過功夫,說來還真是慚愧。
>

以 OOAD 的角度來看, 如果把原先設計的 Class (ClassA) 當成 Sub-Class , 換句話說 往上提昇一個層次 創造另一個 Class(SuperClass) 來容納與 ClassA 同類的 ClassB, ClassC, ... 等, 是 實務上 抽象化 (Abstraction) 常用的方法.

ClassResource (資源) 是 ClassEquipment (機具), ClassManPower(人力} 的 抽象類別 (Abstract Class) ,它的屬性是包括 ClassEquipment (機具)與 ClassManPower(人力} 共通的部分, 例如 資源ID, 資源說明, 單價, ... 等 ;
兩者有不同的之屬性, 例如機具有型號, 購置日期, 現值, ... 等. 人員有員工編號, 姓名, ... 等.
兩者不同之屬性,則分別置於 ClassEquipment (機具), ClassManPower(人力}. 即是所謂實作類別 (Concrete SubClass)

如果把 Class 當成 Object 或者 把 屬性當成物件, 也是 往上提昇一個層次 創造另一個 Class, 都是實務上 抽象化 (Abstraction) 所用的一些方法.
作者 : ozzy123(ozzy) VC++優秀好手資訊類作業求救卓越專家C++卓越專家貼文超過4000則人氣指數超過30000點
[ 貼文 4499 | 人氣 37262 | 評價 11100 | 評價/貼文 2.47 | 送出評價 49 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2012/1/7 下午 08:02:44
analysis problem capability
 板主 : Jammy , Jasper
 > 程式設計甘苦談 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 程式設計甘苦談 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
程式設計甘苦談
1 Jasper 3700 
2 長長 1520 
3 青衫 1300 
4 fortran 1220 
5 weber 1080 
6 HKLN.net 950 
7 冷眼 690 
8 臭蟲 610 
9 Peter.huang 600 
10 Clier 570 
程式設計甘苦談
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875