1樓:
五個柱子!分別為1號 2號 3號
五個盤子 a b c d e
這樣走:
a-3 b-2 a-2
c-3 a-1 b-3 a-3
d-2 a-2 b-1 a-1 c-2 a-3 b-2 1-2
e-3 a-1 b-3 a-3 c-1 a-2 b-1 a-1 d-3 a-3 b-2 a-2 c-3
a-1 b-3 a-3 得出
2樓:
朋友,我移7個盤的只要五分鐘,你怎麼連5個盤都不會移呢?
記住一點,1柱上是基數盤時先移到3盤,1柱上是偶數盤時先移到2盤,照著你移3盤的方法,最少用30步就能搞定了,你試試看吧!
彆著急,慢慢來。。。。。。
玩漢諾塔主要就是玩的方法,教你怎麼走你學的只是別人的東西,關鍵是要把方法學會。
你要是還有什麼不懂的,你再問我,我教你!
3樓:匿名使用者
//用下面這個程式,你想幾層都有幾層
#include
#include "iostream.h"
void move(int n,char x,char y)
4樓:匿名使用者
a-3 b-2 a-2
c-3 a-1 b-3 a-3
d-2 a-2 b-1 a-1 c-2 a-3 b-2 1-2e-3 a-1 b-3 a-3 c-1 a-2 b-1 a-1 d-3 a-3 b-2 a-2 c-3
a-1 b-3 a-3 得出
漢諾塔問題通項公式
5樓:章氏不錯
【1,2,3】這個遞迴編號相同的行,如果單拿出來,是ab,bc.ca,或ac.cb.ba的迴圈的。
,【1,2】這就是編號。這是人類智慧的洗資料結果。我發現地。。。圖是落櫻提供地。
這是直接產生移動指令的規律。不需要棧模擬。
七層的漢諾塔遊戲最少幾步完成?
6樓:娛樂小八卦啊
七層的漢諾塔遊戲最少需要127步。
其實演算法非常簡單,當盤子的個數為n時,移動的次數應等於2^n – 1。後來一位美國學者發現一種出人意料的簡單方法,只要輪流進行兩步操作就可以了。
首先把三根柱子按順序排成品字型,把所有的圓盤按從大到小的順序放在柱子a上,根據圓盤的數量確定柱子的排放順序:若n為偶數,按順時針方向依次擺放 a b c;
若n為奇數,按順時針方向依次擺放 a c b。
⑴按順時針方向把圓盤1從現在的柱子移動到下一根柱子,即當n為偶數時,若圓盤1在柱子a,則把它移動到b;若圓盤1在柱子b,則把它移動到c;若圓盤1在柱子c,則把它移動到a。
⑵接著,把另外兩根柱子上可以移動的圓盤移動到新的柱子上。即把非空柱子上的圓盤移動到空柱子上,當兩根柱子都非空時,移動較大的圓盤。這一步沒有明確規定移動哪個圓盤,你可能以為會有多種可能性,其實不然,可實施的行動是唯一的。
⑶反覆進行⑴⑵操作,最後就能按規定完成漢諾塔的移動。
所以結果非常簡單,就是按照移動規則向一個方向移動金片:如3階漢諾塔的移動:a→c,a→b,c→b,a→c,b→a,b→c,a→c。漢諾塔問題也是程式設計中的經典遞迴問題。
擴充套件資料
漢諾塔是一個關於世界末日的古老的傳說,在世界中心貝拿勒斯(在印度北部)的聖廟裡,安放著一個漢諾塔,有64塊金片。梵天在創造世界的時留下的。由值班的僧侶法則日夜不停地搬運。
當搬運完畢時,也就是世界的末日。
漢諾塔是源於印度一個古老傳說的益智遊戲。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片**圓盤。
大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。隨著盤數的增加,需要移動的次數也會越來越多,問題就變得越來越複雜,一個不小心就可能出錯。
漢諾塔還有個最關鍵的問題就是第一步的第一小步是將頂層圓盤挪至輔助柱還是還是目標柱的問題。說它關鍵,是因為一步錯,步步錯。第一步走錯了,後面再怎麼走,也不會走對。
經過推理與分析,找到了問題的答案:若塔層數為奇數,頂層圓盤應首先放在目標柱;若是偶數,則放在輔助柱。
7樓:輪滑and魔方
教大家玩漢諾塔規則和訓練遞迴方法
8樓:濟南石峰
漢諾塔完成的最少步驟等於2的n次方減1,其中n是漢諾塔的層數。
9樓:孤獨患者丶飩
漢諾塔移動時,三個盤子要移動7步,這是固定的。當四個盤子時,它先要把最上面的三個盤子移動到另外一根針上(這時移動了7步),然後把第四個盤子移動到另一根針上(這時共移動了8步,三個盤子的7步加上第四個盤子的1步),最後再把那三個盤子移動到第四個盤子上面(又是7步),所以,四個盤子要移動15步。五個盤子也是同樣,我們知道了四個盤子的移動步數是15步,那麼5個盤子就是15+1+15等於31步。
由此得出結論:每增加一個盤子,它的移動步數就增加原來步數的一倍加1。我們已經知道5個盤子移動31步,那麼,6盤子就是31*2+1=63步。
7盤子就是63*2+1=127步
10樓:鞏安柏
七層漢諾塔一共要127步
漢諾塔問題公式是什麼,漢諾塔問題通項公式
漢諾塔問題的非遞迴非堆疊演算法 一 i nclude i nclude define maxno 10000 int step d,step s,no 定義將要行進的步數void main 初始化完畢 if fmod no,2 else 判斷奇數盤的步數和偶數盤的步數 int from,to fro...
漢諾塔該怎麼玩,方法,漢諾塔5層怎麼走
漢諾塔玩法如下 遊戲裡有三根柱子,左邊的柱子上從下往上按照大小順序摞著n片圓盤。玩家需要做的是把圓盤從下面開始按從大順序重新擺放在右邊的柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。柱子 在一個平板底座上間隔一定距離有三根完全一樣的柱子1,2,3,柱子的長短決定於所移...
pascal經典試題 漢諾塔,pascal經典試題 漢諾塔
var a,b,c char n integer procedure hanoi n integer a,b,c char begin if n 0 then begin hanoi n 1,a,c,b writeln move a,to c hanoi n 1,b,a,c end end begi...