中文

弹跳塔比汉诺塔移动更快,但仍需指数时间

综合文献 2016-03-14 v2

摘要

汉诺塔问题是递归编程中的经典练习:其解具有简单的递归定义,其复杂度和匹配的下界是一个简单递归函数的解(该解如此简单,以至于大多数学生死记硬背并在考试时不求甚解地复述)。我们描述了汉诺塔规则的一些非常微小的改变如何导致解的复杂度各种增加,使得它们比经典汉诺塔问题需要更深入的分析,同时仍产生指数级的解。特别地,我们分析了弹跳塔(Bouncing Tower)问题,其中仅将插入和提取位置从塔顶改为塔中间就会导致解的复杂度惊人增加:对于偶数 nn,这样的 nn 盘塔可以通过 55 个递归函数(或等价地,一个具有 55 种状态的递归函数)在 3n\sqrt{3}^n 步内最优移动(即少于同样高度的汉诺塔)。

关键词

引用

@article{arxiv.1602.03934,
  title  = {Bouncing Towers move faster than Hanoi Towers, but still require exponential time},
  author = {Jérémy Barbay},
  journal= {arXiv preprint arXiv:1602.03934},
  year   = {2016}
}

备注

18 pages and many figures, one appendix with the disk pile problem, code in Python