河內塔和倫敦塔是兩個不同的謎題,經常被一起提及,因為它們在圓盤與立柱的外觀上相似。河內塔是由 Édouard Lucas 於 1883 年提出的經典三柱數學謎題,目標是把整疊圓盤從來源柱移到目標柱,且只能用合法移動,並且最少移動次數是圓盤數的 2 次方減 1 步。倫敦塔是後來為認知研究開發的一個獨立規劃任務,必須在一個較小且預先設定好的移動預算內到達固定的目標配置,而不是對抗一個開放式的數學最小值。這兩個任務在螢幕上看起來相似,都有用圓盤大小的差異標記的柱子和圓盤,但規則、最佳解模型以及計分方式有顯著差異。本文將說明這些差異,指出河內塔謎題經過驗證的最少移動公式,並展示如何使用一個支援三、四、五個圓盤的瀏覽器河內塔工具在線上玩河內塔版本。

tower of hanoi vs tower of london
河內塔 vs 倫敦塔:主要差異

什麼是河內塔

河內塔謎題是由法國數學家 Édouard Lucas 於 1883 年以 La Tour d'Hanoï 之名提出。這個謎題使用三根等高的柱子,以及一疊按大小遞減順序排在來源柱上的圓盤,最大的圓盤在底部,最小的在頂部。玩家必須遵守兩條規則,把整疊圓盤移到目標柱:任何時候只能移動柱子最上面的圓盤,且不能把較大的圓盤放在較小的圓盤上面。這些規則和最少移動公式是參考性質的事實,而非裝飾性的文字說明。NIST 演算法與資料結構字典記載了這個遞迴關係,而石溪大學的遞迴指南則獨立完成同樣的推導。這兩個參考來源共同把這個公式鎖定在一個穩定、由外部作者撰寫的來源,而不是自行計算的答案。三、四、五個圓盤經過驗證的最少移動次數分別是 7、15、31 步,而一到八個圓盤的整體黃金數值依序為 1、3、7、15、31、63、127、255 步。

什麼是倫敦塔

倫敦塔謎題是由 Tim Shallice 於 1982 年提出,作為認知研究中的規劃任務。其視覺布局相似,同樣是三根等高柱和少數圓盤,但規則在兩個重要方面有所不同。首先,倫敦塔任務一開始就將圓盤分散擺放在不同的柱子上作為特定的起始排列,要求玩家抵達旁邊顯示的特定目標排列。其次,倫敦塔通常設定固定的移動預算,往往接近該特定起始與目標配對的最佳步數,玩家是在該預算內解題來計分,而不是對所有配置套用同一個數學最小值。倫敦塔被廣泛用於神經心理學評估,因為移動預算的限制讓研究人員能將規劃效率與原始移動次數區分開來。正是這個差異,使得這兩個謎題在規劃研究中不斷並列出現,而不是被視為同一個換了名字的任務。

並列比較

要看出這兩個謎題之間的差距,最清楚的方式就是把規則、計分模型和最佳移動數值的來源並列比較。

特性河內塔倫敦塔
起源年份1883 (Édouard Lucas)1982 (Tim Shallice)
起始布局整疊堆在來源柱上圓盤已分散在各柱上
柱子數量三三
典型圓盤數三到八 (開放範圍)三 (任務指定)
移動規則只能移最上層,較大圓盤不能放在較小圓盤上只能移最上層,較大圓盤不能放在較小圓盤上
最佳移動數來源數學公式 2 的 n 次方減 1依任務而定,取決於起始與目標
計分模型將移動次數與經驗證的最小值比較與每次試驗的固定移動預算比較
典型用途休閒謎題、遞迴教學規劃與執行功能研究

移動規則是這兩個謎題唯一行為完全相同的列。其餘每一列反映的都是不同的設計目標:河內塔環繞著一個乾淨的數學最佳解,倫敦塔則環繞著一個研究人員可以按試驗調整的受限規劃時間窗。

為何這兩個謎題常被拿來比較

這兩個謎題外觀上足夠相似,因此研究人員反覆詢問它們是否測量的是同一件事。一項 2007 年對幼童的研究把倫敦塔與河內塔視為等價的規劃測量工具並比較兩者的表現,結果顯示這兩個任務產生的分數有重疊但並不完全相同。一篇 2000 年的論文則探討兩個任務之間的非共用變異究竟是由於施測方式不同而非謎題本身的差異,發現即便跨越施測風格,這些差異仍然持續存在。反覆出現的結論是:這兩個謎題不能互相替換。河內塔是一個遞迴性的最少移動謎題,每個合法移動序列最終都會收斂到一個已知的數學最佳解;而倫敦塔則是一個受限預算的規劃任務,其最佳序列取決於特定的起始與目標排列。任何想要親身體驗河內塔這一端的人,都可以在瀏覽器中玩三、四或五個圓盤,看著經驗證的最少移動計數器對照公式更新,而不是對照人為設定的預算。

如何在線上玩河內塔

  1. 開啟河內塔頁面,從圓盤選擇器中選擇三、四或五個圓盤,並在按下開始前先看一下顯示的最小值。
  2. 點擊按鈕或按對應的數字鍵 (1、2 或 3) 來選擇來源柱。第一次選取只是挑出最上層的圓盤,不會增加移動計數。
  3. 點擊按鈕或按對應的數字鍵來選擇目標柱。目標柱必須是空的,或者最上層圓盤要大於你正在移動的圓盤。再選一次同一個柱子會取消這次移動;如果來源柱是空的,則會提示沒有東西可拿。
  4. 如果目標柱最上層是較小的圓盤,移動會被拒絕且不會改變盤面或移動計數,來源柱保持選取狀態,讓你可以改選一個合法的目標柱。
  5. 把整疊圓盤移到目標柱。當最後一個合法圓盤落在目標柱上時,遊戲會凍結並在所選圓盤數的經驗證最小值旁邊顯示你的總移動次數。
  6. 只把移動次數與該圓盤數的經驗證謎題最小值比較:三個圓盤是 7,四個圓盤是 15,五個圓盤是 31。

同一套有保護機制的選擇流程同時適用於點擊、觸控以及實體的 1、2、3 鍵,因此鍵盤操作並不是一個獨立的模式。關於最佳移動推導的深入說明,可參閱河內塔迭代 vs 遞迴演算法指南,其中比較了產生 2 的 n 次方減 1 序列的兩種常見方法。

計分與最終結果

達到經驗證的最小移動次數可獲得 1,000 分。每多走一步合法移動就扣 20 分休閒分數,但有 100 分的下限,確保任何一局都不會低於這個小額固定獎勵。這些分數是這個瀏覽器工具本身的產品規則,既不是經典謎題原始設定的一部分,也不是規劃能力的評分。重新開始會把盤面重設回三個圓盤的配置並清除所有移動記錄,共享的外層框架可能會在瀏覽器中儲存一個最佳本地分數,但不會把任何嘗試、移動路徑、分數或識別碼上傳到伺服器。當最後一個合法圓盤落在目標柱上時,遊戲會凍結並把你的移動次數顯示在經驗證最小值旁邊,此後額外的移動都會變成原子性的無操作。

依目的選擇合適的謎題

如果目標是想體驗 Lucas 當年設計的遞迴最少移動問題,那麼三、四或五個圓盤的河內塔會給你一個乾淨的數學最佳解,以及與 2 的 n 次方減 1 公式的直接對照。如果目標是想在受限的移動預算內,針對固定的起始與目標排列練習規劃,那麼倫敦塔就是合適的形式,但它是一個有自己計分模型的不同謎題。這兩個謎題獎勵的是不同的能力,使用的是不同的最佳移動定義,這正是研究文獻中不斷發現它們相關但並非同一個任務的原因。

延伸閱讀:可以不下載就玩 Tower Stack 嗎?可以。