八层的汉诺塔怎么玩啊,快,解到第七层时不会了!

给个公式,谢谢!
2025-05-09 18:55:06
推荐回答(4个)
回答1:

http://blog.sina.com.cn/s/blog_68507b0a0100onrr.html

记住这个规律,以后玩汉诺塔基本上就是体力劳动了。

规律:
先小后大,单左双右,循环。

设3个柱子分别是甲,乙,丙,把3根柱子看成一个循环,也就是说,甲的右边是乙,乙的右边是丙,而丙的右边则回到甲,同理,甲的左边就是丙。简单点,记住丙的右边是甲,和甲的左边是丙就行了。
盘子分别是盘1,盘2,盘3,盘4……盘1最小。

按照“单左双右”的规律,先移动小的,也就是先移动盘1,再移动盘2,盘3,按顺序,把能移动的都移动一次,每次移动一步,如果不符合游戏规则,就移动两步,还是不符合的话,就找到盘1,重新按照“单左双右”的规则走,直到完成游戏。

例:3个盘子,单数,向左走。
1,盘1向左移动一步,到丙柱。
2,盘2向左移动一步,不符合游戏规则,移动两步,到乙柱。
3,盘3向左移动一步,不符合游戏规则,移动两步,不符合游戏规则。找到最小的盘1,向左移动一步,移动到乙柱。
4,盘2被盘1压住,无法移动。盘3向左移动一步,到丙柱。
5,找到最小的盘1,向左移动一步,到甲柱。
6,盘2向左移动一步,不符合游戏规则,移动两步,到丙柱。
7,盘3被盘2压住,无法移动。找到最小的盘1,向左移动一步,到丙柱。
游戏完成。

回答2:

前七层是不是自己解开的?如果是的话第8层应该没问题啊,我解到了十层,觉得太费时间了,后面没玩,每增加一层所用时间翻倍。八层的就是玩了两次7层的加移动一次最下面那块一次,如果你玩了前7层的话,第8层的解法是把A柱前7层移到B柱,把第8块移到C柱,然后再把B柱的7层移到C柱,不过层数越多越容易乱是真的。你可以不管最下面那层,直接当重新玩一次上一级

回答3:

Dim arr, i

Public Sub 汉诺塔递归算法()

i = 0

ReDim arr(1 To rows.count, 1 To 1)

[A:A].Clear

Call hanoi(4, "X", "Y", "Z")

[A:A] = arr

End Sub

Public Sub hanoi(n, x, y, z)

If n = 1 Then

i = i + 1

arr(i, 1) = x & "-->" & z

Else

Call hanoi(n - 1, x, z, y)

i = i + 1

arr(i, 1) = x & "-->" & z

Call hanoi(n - 1, y, x, z)

End If

End Sub

用VBA在excel中列出每步应该怎么走,照着做就好了

网页链接

回答4:

我给女儿说的顺口溜是:单数盘子,哪个柱子赢去哪个柱子!双数盘子哪个柱子输去哪个柱子!
然后小盘子跟着大盘子走就是了,一步也不错8个盘子255步。