2014-10-08 47 views
0

我是一個PHP新手,我在舞臺上,我得到每一塊PHP代碼,並試圖瞭解它是如何工作的。我從維基百科上找到的一些簡單算法開始。PHP中的河內塔

對於漢諾塔我:

$i = 1; 
function hanoi($plates, $from, $to) { 
    global $i; 
    while($plates > 0) { 
     $i++; 
     /* ????? */ $using = 6 - ($from + $to); 
     hanoi(--$plates, $from, $using); 
     print "Move plate from $from to $to; "; 
     $from = $using; 
    } 
} 

//Arguments: No of plates, From stick(1, 2 or 3), 
//To stick(1,2 or 3; except From stick) 
hanoi(6, 1, 3); 
print " Number of moves: $i"; 

如果是6來自哪裏?

回答

0

6是您正在移動的單個板的數量,但爲了方便起見,我認爲它可能被硬編碼到該功能中。典型的河內有6個盤子。

編輯:就像一個說明,雖然它是一個好主意,看看已經完成的PHP代碼,自己寫,即使你在複製它,也會給你更多的經驗學習語法除了更好地理解它之外更快

+0

這可能是一個解釋,但我不確定這是否是正確的。當板數大於或等於6時,用板數代替'6'。如果我們讓'6'代表每個數都可以工作。感謝您的小費。 – ADDA 2014-10-08 08:54:29