当前位置: 首页 > 知识库问答 >
问题:

分析算法-递推方程(河内塔)

壤驷康裕
2023-03-14

我在维基百科上看到这个求解河内塔的递归算法。谁能给我解释一下我是怎么得到这个算法的递推方程的?

    null
  • 将N-1个光盘从A移动到B,这将使光盘n单独位于peg A上
  • 将磁盘n从A移动到C
  • 将N-1个光盘从B移动到C,使它们位于光盘N上

上面是一个递归算法,为了执行步骤1和3,对n-1再次应用相同的算法。整个过程是一个有限的步骤,因为在某一点上,算法将需要n=1。这一步,将单个光盘从pega移动到pegb,是微不足道的。

共有1个答案

巫经义
2023-03-14

前三个步骤可以在线性时间内完成,后三个步骤是递归部分,然后,只需用递归格式编写纯文本格式的内容:

T(n,A,C) = T(n-1,A,B) + 1 + T(n-1,B,C).

另一方面,因为标签并不重要,而T(n,A,B)=T(n,B,C)=T(n,A,C)=…,我们可以去掉标签,所以方程会是?

 类似资料:
  • 问题内容: 这是我使用递归解决河内塔的Java代码: 我放置打印方法的地方重要吗?另外,我可以这样做吗: 问题答案: 以这种方式解决问题,无非是定义如何完成工作的策略。和你的代码: 基本上将您的策略​​定义为喜欢以下情况, 将 _ n-1个 磁盘从 _ “从” (源塔)移动到 _ “其他”_ (中间塔)。 然后将第 _ n 个磁盘从 _ “从” (源塔)移动到 _ “到”_ (目标塔)。 最后将

  • 数学模型 1. 近似 2. 增长数量级 3. 内循环 4. 成本模型 注意事项 1. 大常数 2. 缓存 3. 对最坏情况下的性能的保证 4. 随机化算法 5. 均摊分析 ThreeSum 1. ThreeSumSlow 2. ThreeSumBinarySearch 3. ThreeSumTwoPointer 倍率实验 数学模型 1. 近似 N3/6-N2/2+N/3 ~ N3/6。使用 ~f(

  • 我试图通过绘制一棵恢复树并将其求解为替换方法来求解。但是我很难理解sqrt方法将如何影响这个过程,如果可能的话,我正在寻找一些指针 非常感谢!

  • 10.5 算法分析 通过前面各小节的介绍,我们看到可以设计出多种不同的算法来解决同一个问题,如搜 索问题中的线性搜索和二分搜索,排序问题中的选择排序和归并排序,最小生成树的 Prim 算法和 Kruskal 算法,等等。本节要讨论的是:解决同一问题的不同算法有好坏之分吗?

  • 本文向大家介绍河内塔问题,包括了河内塔问题的使用技巧和注意事项,需要的朋友参考一下 河内塔是一个难题的问题。我们有三个看台和n个光盘。最初,将光盘放置在第一支架中。我们必须将光盘放入第三个或目标支架,第二个或辅助支架可以用作帮助支架。 但是要遵循一些规则。  每个动作我们只能传送一张光盘。 只能从架子上取出最上面的光盘。 较大的光盘不会放在较小的光盘的顶部。 此问题可以通过递归轻松解决。首先,使用

  • 我从Bitbucket或Github迁移了我的回购协议。我认为这无关紧要,但这是唯一不同的地方。有一段时间,我安装了两个遥控器: 然后我将两者都删除,并将原点指向github: 开发分公司测试推送: 一切都是最新的,好的,很好。 按照常规为某些工作创建新分支: 更新一两个文件。尝试推送至远程: 这会导致错误: 致命:无法将功能/名称解析为分支 在线搜索此问题,找到一些关于确保HEAD正确的信息,其