拓展訓練漢諾塔(拓展活動記憶六十秒漢諾塔)
漢諾塔
有些公司拓展培訓會玩這類游戲,或者小孩子也有玩的,之前我總結過發到了網上,現在重新總結并完整的整理下,供大家娛樂。學過程序開發的都知道漢諾塔當然是用遞歸算法來解決,但遞歸算法不適合人腦。我們玩的就是簡單暴力,傻瓜式操作。
基本規則是,三根柱子之間一次只能移動一個圓盤,小圓盤上不能放大圓盤。
漢諾塔有些變種,比如柱子的個數可能3個,4個,5個,但顯然柱子越少越難,所以一般還是用3個。圓盤一個或兩個太簡單了,一般是3個或以上,圓盤移動的規則有些變種是圓盤只能移動到相鄰的柱子上,不能跨柱子移動,這個同樣也有規律,大家可以自己想解法。
為了便于通用理解,我們采用如下規則:
三個柱子,每個柱子有任意個圓盤,大圓盤不能壓在小圓盤上,一次移動一個圓盤,圓盤可以從最左邊直接移動中間的柱子,也可以直接移動到最右邊的柱子。至于最終三個如果全部移動到第三個柱子(最右邊那個)上,我們認為成功(當然全部移動到中間的柱子上也可以認為成功,但我們為了通用性只認定全部移動到最右邊的柱子上是成功)。
第一步,我們看一下圓盤的個數,按照奇左偶右的口訣進行(左的意思是第一次向左移動最小圓盤,最小圓盤不動,任意走一步,再向左移動最小圓盤,接著再最小圓盤不動,任意走一步,如此往復,如果向左移動到頭了,就直接移動到最右邊的柱子上,把柱子當成圓圈來處理。右的意思和向左的規律一樣,只是移動方向相反)。其實做起來很簡單,但可能有些人第一次看不明白,我們拿三個圓盤的漢諾塔詳細一步一步圖解下。
如上圖,三個圓盤,奇數個,所以按口訣的話是向左移動(確定好方向后,后面操作的時候一直向左)。什么意思呢,就是最上面最小的那個圓盤,眼睛要盯緊它,第一步肯定只能動它,我們把它向左移動。問題來了,向左沒有柱子,怎么移啊,我們要把這些柱子想象成循環的圓圈,所以向左移,其實是把它移動到最右邊第三個柱子上,開始移動。
移動完最小圓盤,接下來隨便走一步,但一定不能動這個最小圓盤(也就是說最小圓盤按口訣走一次之后不能再動),但是大家發現了,隨便走一步且不能動最小圓盤,有且只有一步可走,我們走一步。
接下來再走最小圓盤,向左走一步(在最開始時候我們已經根據圓盤個數奇偶性確定了移動方向,所以后面一直走這個方向)
接下來最小圓盤不動,再任意走一步(其實有且只有一步可走)
接下來最小圓盤向左走一步
最小圓盤不動,任意走一步(顯然有且只有一步)
最小圓盤向左走一步(左邊到頭了,循環移,意思就是移到最右邊)
上圖已經顯示祝賀我們,我們成功了!
我們用了最小的步數成功移動,而且毫無壓力。
下面我們可以練習三個柱子四個圓盤(四個圓盤為偶數,按口訣最小圓盤向右移動,移一下停一下),三個柱子五個圓盤(五個圓盤奇數個,按口訣最小圓盤向左移動,其實和三個圓盤規律一樣,只不過步數多)的情況,如果你很快走出來了,那么你已經掌握了這個辦法。
回到文章開頭,如果我不想三個全移動到最右邊,只想全移動到最中間的柱子呢,顯然,把口訣改成奇右偶左就行了。至于開頭的一些變種的漢諾塔的玩法,萬變不離其宗,大家可以自己總結規律。
謝謝大家閱讀到最后。