2013-10-07 39 views
1

例如,在河內算法的以下塔:在河內的算法中,什麼是輔助?

input Number of disk 
output Print: disk moved successfully 
complexity O(n). 

Tower(n , beg , aux , end) 
1. If (n=1) then 
Beg = end; 
Return; 
2. Call Tower(n-1 , beg ,end , aug); 
3. Call Tower (1 ,beg ,aux ,end); 
4. Call Tower (n-1,aux ,beg ,end); 

什麼是輔助假設來表示?

+0

輔助是第三堆棧。 –

回答

2

在河內塔的問題中有三個主軸:一個起動主軸(塔開始的地方),一個末端主軸(塔的最終位置)和一個輔助主軸(三個中的另一個)。輔助主軸用作臨時存儲空間,用於在整個塔架從起始主軸到最終主軸的過程中移動磁盤和塔架。

希望這有助於!

+0

非常感謝!所以如果我的問題包含Aux1,Aux2,這是否意味着總共有4個主軸? – stevendao

+0

@ stevendao-沒有更多的背景,我不能肯定地說。如果它們作爲參數提供,我的懷疑是,是的,有四個主軸。也就是說,這可能記錄在某個地方。 – templatetypedef

1

如果只有兩個掛鉤,這將是寸步難行多個磁盤。從一個組中移動包含多個磁盤的組。栓1至掛2,有必要移動所有但底部盤栓既不是起源也不是組的目的地。另一個掛鉤被稱爲「輔助」。的算法的一些表述中明確指定輔助PEG(在這種情況下都不會有問題的釘是否被編號爲0-1-2,1-2-3,或11-47-93),而其他要求,這三個栓釘有三個特定數目(例如0-1-2),並假定取值沒有給出將所述輔助(例如,通過計算(AUX = 3-SRC-DEST))。

順便提及,拼圖的3-PEG版本用於所以通常作爲一個例子,它幾乎一個恥辱,沒有努力來探索用多個栓釘的變化。這些變化在100多年前的益智書中有所探討,但我還沒有看到任何現代教科書都提及它們,即使我認爲它們更有趣。