漢諾塔啊啊啊 口

2022-09-18 13:18:11 字數 985 閱讀 9174

傳統漢諾塔問題:

漢諾塔由n個大小不同的圓盤和三根木珠a、b、c組成。開始時,這n個圓盤由大到小依次套在a柱上,要求把a柱上n個圓盤按如下規則移到c柱上:

(1)一次只能移乙個圓盤;

(2)圓盤只能在三根柱上存放;

(3)在移動過程中,不允許**壓小盤;

問將這n個盤子從a柱移到c柱上,總共需要移動的次數?

這個問題可以用遞推來解決啦~\(≧▽≦)/~啦啦啦,想象一下,將n-1個盤子看成乙個整體,設移動乙個盤子的最少步數為f(1),移動兩個盤子的最少步數則為f(2),移動三個盤子的最少步數則為f(3),以此類推,移動n個盤子的最少步數則為f(n)。

那麼如何用計算機實現f(n)的計算呢?

可以先想一下,如果是要移動三個盤子時的解決方法,如果要移動三個盤子到c柱,需要將a柱最下面的盤子放到c柱最下面,那麼如何實現這個操作呢?需要將a柱最下面盤子的上面兩個盤子先取下,將其放在b柱上,(那我標記一下吧,稱最上面的盤子為一號盤,一號盤下面的為二號盤,二號盤下面的為三號盤,以此列推.....)

如何實現一號盤和二號盤的取下呢,當然要先取下一號盤啦!(首先明確一點,把兩個盤子放在b柱和放在c柱上的步數是沒有差別的!)

f(2)=f(1)+1+f(1)而f(1)又是已知的,所以f(2)也可以推出來,後面的就以此列推,f(n)=f(n-1)+1+f(n-1)=2*f(n-1)+1;←這是遞推式

那通項公式呢?↓

f(n)+1=2*f(n-1)+2

f(n)+1=2*[f(n-1)+1]

設f(n)+1=g(n)

則f(n-1)+1=g(n-1)

所以g(n)=2*g(n-1)

g(1)=2

所以g(n)=2n

f(n)+1=2n

f(n)=2n-1

呀呀呀啦啦啦~\(≧▽≦)/~啦啦啦哈哈哈o(∩_∩)o哈哈哈~嘿嘿嘿

用棧求解漢諾塔問題,利用遞迴求解增強版漢諾塔問題

四柱加強版漢諾塔問題

坑爹啊啊啊啊啊啊

題目描述 滑雪是一項很受歡迎的體育運動,為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不得不再次走上坡。我們想知道載乙個區域中最長的滑坡。區域由乙個二維陣列給出。陣列的每個數字代表點的高度。下面是乙個例子 12 3 4 5 1617 18 19 6 1524 25 20 7 1423 22...

扯淡啊啊啊啊

兄弟們,姐妹們,土豪們,女神們 本人,乙個年輕帥氣富有朝氣,雖略微短板但霸氣內斂的真漢子,即將離開這個整日洋溢的歡聲笑語的團隊了,很慶幸遇上一群可愛的你們。一路上有你們,見證了乙個純潔少年蛻變為職業屌絲的艱苦歷程。奈何天下無不散之筵席,與各位的緣分也要暫時畫上乙個頓號了,在這離別之際借鑑一段名言名句...

積分啊啊啊啊

toc我想要積分啊啊啊啊啊啊啊啊啊啊啊啊 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將...