梵塔傳奇:數學規律的尋覓


羅浩源   顯理中學
蕭文強   香港大學數學系



『廟前的空地豎立了三支柱,位向正東方的一支疊放著六十四塊金片,在 斜陽的照耀下閃閃生輝。大大小小的金片,排列有序,由上至下,金片一層 一層增大。此際,但見方丈運起內力,金片在三支柱間穿梭飛舞。大師對眾 徒說:每發一掌,須把一塊金片移到其餘兩支柱上,任擇其一。但須謹記, 大金片不可壓在小金片上,以免走火入魔。等到六十四塊金片全部移到位於 正西方的柱上,你的內力已臻登峰造極,可以下山了。』


每逢講解「數學歸納法」這個課題,上述的傳奇式故事總有機會流傳開 來。從學生的眼神中看得出他們還是喜歡這個經典數學遊戲 ── 「河內塔」 (TOWER OF HANOI)」── 經渲染了的「武俠小說版本」。「河內塔」這個 玩意,最先大扺是在1883年的巴黎流傳。當時市面上銷售的版本上面署名發 明人是 N. CLAUS (DE SIAM),看來是 LUCAS D'AMIENS 的化名,因此有人 認為那其實是法國數學家 EDOUARD LUCAS (1849-1891) 想出來的玩意。當 時適值法國開始覬覦安南(今之越南),進軍當地,河內這些地名不時出現在法 國報章上,可能這個玩意便以此命名吧。



圖1


這個遊戲珍貴之處,在於讓學生在過程中尋找規律,也可以從過程中體會 到「數學歸納法」的精神。不少學生只掌握了「數學歸納法」較機械化的一 面,那其實是純粹演繹 (DEDUCTION) 而非歸納 (INDUCTION)。他們以為只 要把已知的公式對 和 的兩種情況寫下來,由前者推算出後者(再 加上驗算 的情況),就算是學懂了「數學歸納法」。很少學生想到如何基 於「數學歸納法」的精神去發現答案,就是運用倒推的手法,把問題一步一 步化簡。(因此,那亦不是純粹歸納而已,雖然有時歸納可以導致合理的猜 測。)


以下是一次師生對話的節錄:


教師:尋找規律,可從一些簡單情況入手。
甲生:明顯地,1塊金片只需1步。【拿了二塊移動。】用3步可以把2塊金片 移往另一支柱上。
【片刻間,該生已發現用7步可以完成3塊金片的移動。大家花了不少時間才 能確定分別以15步和31步可以完成4塊和5塊金片的移動。】
教師:相信大家已開始感受到移動大量金片所需的耐力吧!你們還有沒有興 趣繼續移動6塊金片呢?
乙生:還是留待晚上睡不著才做吧!從這些獲得的結果。是否足以找到移動 金片的規律呢?
教師:讓我們把這些結果寫下來看一看。【隨即在黑板上畫了以下的表:

金片數目 移動次數(m) m + 1
1 1  
2 3  
3 7  
4 15  
5 31  
並著學生完成該表。】
甲生:2、4、8、16、32、那不就是2的冪數嗎?m + 1 應該是 2 ,對嗎? 教師:很好,所以移動次數很可能就是m = 2 -1
丙生:從這公式可以計算移動金片所需的次數,但如果要掌握移動金片的步 法,這個結果似乎沒有用!
教師:說得好。不如你試把移動金片的情況詳細記錄下來。


【學生在教師的引導下完成下表: N = 3 的移動情況

東柱 西柱 北柱  
1,2,3   
2,3 1  (金片1移往西柱)
312 (金片2移往北柱)
3 1,2 (金片1移往北柱)
  31,2 (金片3移往西柱)
1 3 2 (金片1移往東柱)
1 2,3  (金片2移往西柱)
  1,2,3 (金片1移往西柱)】

丙生:啊!原來移動7步中,金片1、2、3的移動次數分別是4、2、1。【該生馬 上試完成 N = 4 的移動過程。】 果然不出所料,移動4塊金片,金片 1、2、3、4 的移動次數分別是 8、4、2、1。我們只須移動最大的金片1 次,但卻要把最小的金片移動8次。把最大的金片移動那一次後,問題不 就 是化為移動3塊金片的情況嗎?
教師:非常有意思!你們現在可以解釋移動 塊金片的公式嗎?能否先把問 題從 N 片化成 N - 1 片的情況去處理呢? 【眾學生繼續興高彩烈地討論,還得到更細緻描述移動金片的辦法,大家還估 計了移動六十四塊金片所需的時間,此處不贅。】

現在讓我們看看如何證明需要移動 (至少)2 - 1 次把 N 塊金片從東柱移 到西柱。通常書本上作以下的解釋:

設  是移動(至少)次數,不難明白f(1) = 1 。接著嘗試把 f(N)f(N-1) 的關係找出來。先把上面N - 1 塊金片從東柱移到北柱,用了 f(N) 步,再用一步把第N 塊金片從東柱移到西柱,然後把那 N - 1塊金片從北柱移回到西柱第 N塊金片上面,又用了f(N - 1)步。合起來共用了 2f(N - 1) +1步,於是 2f(N - 1) +1 由此不難算出


f(N) = 2f(N-1) + 1 = 2² f(N - 1) + 2 + 1
= 2 ³ f(N-3) +2 ² + 2 + 1 = :(
= 2 f(1) + 2 + :( + 2² + 2 + 1
= 2 + 2 + :( + 2² + 2 + 1 = 2 - 1

【也可以用「數學歸納法」直接證明,那是假定已知公式為 f(N) = 2 - 1 。】

仔細審視上述的解釋,你便察覺它只證明了不等式 f(N)< 2f(N - 1) + 1 , 也 就是只證明了f(N) <2 - 1吧。我們還欠一步,即是證明 。幸好這一步容易看出來,只用注意一點:要把最底第f(N)> 2f(N - 1) + 1 塊金片從東柱移到西柱之前,必須把較小的N - 1塊金片全部移到北柱去。要 這樣辦,至少已經用了f(N - 1)步。把那N - 1塊金片從北柱移到西柱,又至 少用了f (N-1)步,所以f(N)> 2f(N - 1) + 1

後面補充的一段話,通常給忽略掉,也許因為只有三支柱,這回事像明顯 不過。假如有四支柱,不等式便不明顯了,而且那其實是錯的!假如有四支 柱,仍然設 是移動(至少)次數。固然,我們仍然有f(N)=1f(N)< 2f(N - 1) + 1 ,因此仍然有f(N)< 2 - 1 。但這次真正的f(N)和2 - 1 相差可能不少。舉一個簡單情況為例,有3塊金片和東、南、西、北四支柱, 已經知道f(3)< 2³ - 1 = 7 ,但其實移動5次已足夠,而且 真的是5,不是 7(見下面的表)。


東柱 南柱 西柱 北柱
1,2,3    
2,3 1   
3 1   2
  1 3 2
1 2,3    
   1,2,3  

讀者不妨試計算 f(4)f(5) 。一般而言,N塊金片和K支柱的「河內塔」 需要移動(至少)多少次,似乎仍然是一個懸疑未決的問題呢。

梵塔的傳說包含著多姿多采的數學內容,在教師的適當引導下,學生在遊 戲過程中自當體驗到尋覓數學規律的樂趣。



回《數學教育》第 六期目錄
數學教育 第六期 EduMath 6 (7/98)