第 66 章 漢諾塔(2 / 2)

“漢諾塔的時間複雜度為O(2^n),其中n是盤子的數量。每次移動可以將任意一個盤子從下層移到上層,所以當有N個盤子時,需要重複進行2^(N-1)次操作來將所有盤子移至目標柱子。”

也就是說10個盤子需要512次移動,很明顯這是一個很耗時間的體力活。

“大家思考一下,如果讓你設計一個算法來解決漢諾塔問題,你該如何實現。十分鍾時間,大家可以相互討論一下。”

課堂上瞬間嘈雜起來,討論聲紛紛。

“肖遙,這個咋弄呀?”朱俊傑拿著漢諾塔的玩具問向肖遙。

肖遙將所有的盤子全部移動到終點的柱子上,除了最上麵那個最小的盤子,那個最小的盤子他放在了中間。

“朱俊傑,你看看,現在你能完成嗎?”

“這也還不簡單嗎?這都到最後一步了,隻需要將中間最小的盤子移動到終點柱子上就結束了。”

“對呀,這就是這個算法的關鍵。假設有一個人幫我們完成之前所有的步驟,隻剩下最後一步讓我們來完成。”

朱俊傑還是有些無法理解。

“那你說的那個人,他又要如何做到隻剩下最後一步呢?”

肖遙又從終點柱子上取下最上麵的那個盤子,放到第一根柱子上。

“如果有人幫他移動到這種程度,他不就隻需要一步了嗎?”

旁聽的辛巧巧、王勇齊齊點頭。

“漢諾塔的移動過程是一個典型的遞歸過程。首先,將上麵的n-1個盤子移動到中間的柱子上,然後將最大的盤子移動到目標柱子上,最後再將中間柱子上的n-1個盤子移動到目標柱子上。這個過程需要不斷地重複,直到所有的盤子都移動到目標柱子上。”

劉陽聽完肖遙的講解,也覺得非常形象,對於剛接觸編程的人來說,是一個比較方便理解的比喻。

“對啊,遞歸在編程過程中非常普遍,很多算法都涉及到遞歸思想。辛巧巧同學,你聽懂了嗎?如果沒懂,下課後我可以再給你詳細講講。”

“好的,我確實還沒有完全理解。”

朱俊傑和王勇向劉陽投來鄙視的眼神,王勇陰陽怪氣的說道。

“劉陽同學,我也不懂耶,要不也給我講講唄!”

劉陽尷尬的笑了笑。

“那下課後一起吧。”

臨近十月一號國慶節,肖遙接到奧牌4S店銷售打來的電話。

“肖先生你好,您訂購的A4已經到店了,您看什麼時候有空來提車。”

“行,我馬上過來。”

2007年播出了一部熱播劇,因為劇中男主的座駕是一輛奧牌A4,所以當年這款車也火了一把。

肖遙也是看了那部電視劇,才決定購買A4。

在2008年的時候豪華品牌汽車優惠力度並不大,不像2023年動輒大幾萬的優惠,一輛A4L不到30萬就能落地。

到達4S店,肖遙辦好手續,刷了全款,又購買了車險,花了38萬。

“肖先生,要不中午就在我們店裏吃個盒飯,臨時牌照下午就能到,免得您又多跑一趟。”

“行,那我在店裏等等。”

銷售員給肖遙領來一份盒飯,吃起來感覺很一般,遠不如魔都大學食堂好吃。

看著手裏的車鑰匙,肖遙內心激動不已。

“我終於成為有車一族,可以帶新月去兜風了。”