Update hanota_problem.md
k神这里能够将n-1个圆盘看作一个整体的前提是不是需要一点思考🤔因此我写了这个版本,似乎更容易理解。
This commit is contained in:
parent
89a911583d
commit
f5fca1f3d1
@ -68,7 +68,7 @@
|
||||
|
||||
从本质上看,**我们将问题 $f(3)$ 划分为两个子问题 $f(2)$ 和一个子问题 $f(1)$** 。按顺序解决这三个子问题之后,原问题随之得到解决。这说明子问题是独立的,而且解可以合并。
|
||||
|
||||
至此,我们可总结出下图所示的解决汉诺塔问题的分治策略:将原问题 $f(n)$ 划分为两个子问题 $f(n-1)$ 和一个子问题 $f(1)$ ,并按照以下顺序解决这三个子问题。
|
||||
至此,我们可总结出下图所示的解决汉诺塔问题(原问题$f(n)$)的分治策略:现在先考虑不论以何种方式移动,对于最后一个最大的圆盘,需要将其移动至目标柱c(子问题$f(1)$),由于只能将小圆盘放在大圆盘上,因此此时另外$(n-1)$个圆盘一定在b柱且排列规则(子问题$f(n-1)$),这意味着在这一步前已经完成了。接着,考虑将在b柱上的$(n-1)$个圆盘移动至c柱(子问题$f(n-1)$),这样就将原问题 $f(n)$ 划分为两个子问题 $f(n-1)$ 和一个子问题 $f(1)$ ,并必定按照以下顺序解决这三个子问题。
|
||||
|
||||
1. 将 $n-1$ 个圆盘借助 `C` 从 `A` 移至 `B` 。
|
||||
2. 将剩余 $1$ 个圆盘从 `A` 直接移至 `C` 。
|
||||
|
Loading…
Reference in New Issue
Block a user