這是上學期錄製高二數學教科書中的一個題目,屬於排列組合的範圍。(點圖,可以放大)
玩數學23:Hanoi Tower(99.6.20)
這是大一時計算機概論的第一道習題,當初學的是 FORTRAN 和 PASCAL 電腦語言,
以前交作業時必須將程式列印出來,如果選修「計算機作業系統」等重量級的課程,
到學期末必須寫出一套作業系統,當時謠傳老師會用電扇吹作業,萬一作業被吹走,那可能就會被當了!

看到這個題目,回想起以前在學校寫程式交作業的點滴,平日忙於社團或系上的活動,每逢期中考或期末考前,計算機中心總是大爆滿,大家排隊等著用 Terminal,有時不得已只好留在計中熬夜,現在的學生可幸福了,人手一部手提電腦,不過可就無法享受到男同學半夜送消夜到計中的美食囉!

玩數學23:Hanoi Tower(99.6.20)
看這個遞迴關係式可能很抽象,我們也動手做了一些小圓盤來模擬。

玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
把五個圓盤從 A 移到 C,T 是一個 Buffer (暫存的位置)。
規則一: 每次只能移動一個。
規則二:在移動過程中,大的圓盤不能套在小的圓盤上。


n = 1 的情況。
玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
答案 = 1。

n = 2 的情況。
玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
(1)先把小的搬到 T。

玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
(2)把大的搬到 C。
(3)把小的搬到 C。
答案 = 2 x 1 +1 = 3。


n = 3 的情況。

以下是簡單的圖示。
玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
步驟一:先把上面兩個小的搬到 T。(也就是 n = 2 的狀況,所需次數為 3)
玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
步驟二:把最大的圓盤從 A 移到 C。(所需次數為 1)
玩數學23:Hanoi Tower(99.6.20) 玩數學23:Hanoi Tower(99.6.20)
步驟三:把上面兩個小的搬到 C。(也就是 n = 2 的狀況,所需次數為 3)
答案 = 2 x 3 +1 = 7。


不知道這樣簡單的圖示大家能不能了解,如果看不懂我再把完整的步驟貼上來。

n = 4 的時候,就必須想辦法把上面三個小圓盤先搬到 T(也就是 n = 3 的狀況,所需次數為 7),再把最大的圓盤從 A 移到 C(所需次數為 1),最後把上面三個小圓盤搬回到 C(也就是 n = 3 的狀況,所需次數為 7),因此答案為:
答案 = 2 x 7 +1 = 15。


萬事起頭難,一下子就給琳琳五個圓盤,搬來搬去總是沒有章法,後來我從一個圓盤、兩個圓盤慢慢讓琳琳思考,當她完成三個圓盤的搬動時,就已經完全抓到要領,再搬四個圓盤或五個圓盤時,就完全難不倒琳琳了。

至於嘟嘟則是完全不按牌理出牌,亂搬一通,罷了!時候未到呀!



arrow
arrow
    全站熱搜

    hinlin 發表在 痞客邦 留言(5) 人氣()