先上题目:
【问题描述】
相信大家应该做过最经典的汉诺塔题目,那什么是多层汉诺塔呢?
【题目描述】 汉诺塔是一个有意思的游戏,每个柱子上套上多个中心有洞的圆盘,每次只能移动一个圆盘,并且每个圆盘不能放在比它面积小的圆盘的上面。现在有三套圆盘并叠加放在一个柱子上了,请移动圆盘,使每个柱子上的圆盘都按照相同的顺序从大到小的摆放好,也就是把三份盘子平均分开。请问对于 n 个不同数量的圆盘(也就是共有 3*n 个盘子),分别在每个柱子上分好 n 个盘子,最少需 要移动多少步?示意图如下图。
【输入格式】 输入共 1 行,包括一个正整数 n
【输出格式】输出共 1 行,一个整数,表示需要移动圆盘的最少的步骤数。
【样例输入】 1
【样例输出】 2
本文概念说明:多层汉诺塔即多阶汉诺塔(阶数为1或3的整倍数)
汉诺塔例举:1、单层汉诺塔:以一个5个圆盘的汉诺塔为例,则这个汉诺塔有5个大小不一样的圆盘。2、以一个有9个圆盘的三阶汉诺塔为例,则这个汉诺塔的圆盘分布为从下到上、从大到小的三层,每层具有三个大小一样的圆盘。3、n阶汉诺塔以此类推(n为3的整倍数)。
数学解决复杂问题的常见思路之一是:先考虑其简单的情景,具体而言,对于多层汉诺塔问题,我们可以先看简单的情形:单层汉诺塔问题。
单层(一阶)汉诺塔(数学解法)
解法一:归纳法(低年级)
我们先统计前面几种比较简单的情况的步骤数:


最低0.47元/天 解锁文章
1051

被折叠的 条评论
为什么被折叠?



