乙個印度傳說:在乙個神廟裡有有乙個漢諾塔,就是乙個銅板上插著3個寶石針,其中一根針從上到下的穿著由小到大的銅片64片,僧人們一次只能移動乙個銅片,並且不論移到哪個針上,必須保持小片在大片上面。僧侶們預言,當所有的銅片都從穿好的那根針上移到另外一根針上時,世界就將在一聲霹靂中消亡。
當然,這只是個傳說,如果每秒鐘移動一次,那麼移完這個漢諾塔將耗費大約5845億年,到那時說不定又有新的星系被人類發現了。
漢諾塔演算法可以根據推理得出:
publicclass
haniodemo
個盤子從桿子上移動到桿子上
", inum, csource, cdest);
}//移動第幾個盤,從第幾個桿子到第幾個桿子
public
void hanoi(int n, char csource, char ctemp, char
cdest)
else
if (2 ==n)
else
if (3
}}
最終抽象出來的方法:
//////漢諾塔抽象出的最終方法
//////
盤子的個數
///第乙個桿子
///第二個桿子
///第三個桿子
public
void hanoidone(int n, char csource, char ctemp, char
cdest)
else
if(1==n)
else
}
漢諾塔演算法
最簡步驟 2的n次冪 1 為了實現 n個盤從 借助c 從a 移動到 b 思路如下 首先考慮極限當只有乙個盤的時候 只要 盤直接從 a b即可 那麼當有2個盤的時候就只要先把1號盤從a c 然後 把2號盤 a b 再 把 2好盤從 c b 那麼當有n個盤的時候你只要先把 n 1個 盤 借助 b 移動到...
漢諾塔演算法
解法 如果柱子標為abc,要由a搬至c,在只有乙個盤子時,就將它直接搬至c,當有兩個盤子,就將b當作輔助柱。如果 盤數超過兩個,將第三個以下的盤子遮起來,就很簡單了,每次處理兩個盤子,也就是 a b,a c,b c這三個 步驟,而被遮住的部分,其實就是進入程式的遞迴處理。事實上,若有n個盤子,則先移...
漢諾塔演算法
乙個印度傳說 在乙個神廟裡有有乙個漢諾塔,就是乙個銅板上插著3個寶石針,其中一根針從上到下的穿著由小到大的銅片64片,僧人們一次只能移動乙個銅片,並且不論移到哪個針上,必須保持小片在大片上面。僧侶們預言,當所有的銅片都從穿好的那根針上移到另外一根針上時,世界就將在一聲霹靂中消亡。當然,這只是個傳說,...