汉诺塔的动态演示程序
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
‘ 调用移 动子程 序
CalHNT( 一 1 l N ,A ,C,B)
YD A, ‘ C 调用 移动子 程序
Ca n HNT( 一 1 N ,B,A ,C) E d I n f
En d SUb
2 Ha o 塔 问题 的 算 法 分 析 ni
汉诺 ( n i塔 问题 : 印度 , 说有 一 个梵 Ha o) 在 传 塔 , 内有 三根 柱 子 A、 、 A 柱 上 有 6 塔 B C, 4个 盘 子 , 子大小不 等 , 的在 下 , 的在上 , 盘 大 小 有一 个 和 尚想把这 6 盘 子从 A 柱 移 到 C柱 , 每 次 只 4个 但 能允许移 动一个 盘子 , 并且 在 移 动过 程 中 , 求 3 要 个 柱上 的盘子始 终保持 大 盘在下 , 小盘 在上 . 我们 将三根 柱子分 别 标号 为 A、 、 目的 是 B C, 要将 n个盘子从 A柱 子移 动到 C柱 子. 问 题 的 该 算 法如下 : 第一 步 将 A 柱 子上 n 1 盘 子借 助 C柱 一 个 子 移动到 B柱 子上 ; 第二 步 将 A 柱 子上 剩余 的第 n个 盘 子移 动 到 C柱子上 ; 第三 步 将 B柱 子上 的 n 1个 盘 子 借 助 A 一 柱 子移动 到 C柱子 上. 对 于第一步 和 第 三步 , 们 又 可 以利 用类 似 我 的方 法继续 将其求 解过 程设 计 为一 个规 模 为 n 一
子 问 题 口.
1 Ha o 塔递 归算法 . 的 ni
P ia eS b HNT ( ,A tபைடு நூலகம்g,B As rv t u N AsS rn S r g,C AsS rn ) ti n tig
I = 1 Th n fN e
YD A,C
Ele s
3 集 合 的妙 用
从上 面 的算 法 中我们 知道 , 动态 演示 的关键 是移 动 ( D) 程 序 的设 计 , 有 两个 形 参 , 收 Y 子 它 接 来 自调用 程序 的实参 A, . 为 即将 移动 园盘 的 C A 源柱 号 , C为 园盘移动 的 目标柱号 . 而要 知 道源 进 柱 上 的哪 个盘 . 就要 求 记 录 每 根 柱子 上 的 盘数 这 ( 即层 数 ) 及每层 的盘 号 , 动一个 园 盘之后 , 移 起始 柱 上 的盘数 ( 即层数 ) 要减 一 , 目标柱 的盘数 ( 即层 数) 加一, 要 并要 求 记 住 该 盘 的 盘号 . 了简化 程 为 序设 计 , 里定 义 了一 个 集 合 类 形 的数 据 ,D m 这 i
,
[ 收稿 日期1 0 1 O 1 2 1 一l一2 [ 作者简介]郭亚庆 (9 4 ) 女 , 17 - , 陕西礼 泉人 , 十堰职业技 术学院电子工程 系讲 师, 主要从 事计算机技 术 , 算机信 息管 计
理 研 究.
YYS X O / — B Z
—
几
郭 亚 庆 :汉 诺 塔 的 动 态演 示 程 序
[ 中图分类号] 3 1 TP 1
[ 文献标识 码3 A
[ 文章编 号] 0 8 6 7 【0 10 - 0 6 - 0 10 - 0 22 1 )6 0 7 2
1 递 归 的基 本 思 想
递 归算法 是算 法 设 计 的有 力 武 器 , 提供 了 它 有限语句 描述 无 限过 程 的可能 性 . 多 看 来 相 当 许 复 杂 的 , 以下手 的问题 , 难 如果 能把它 归纳成 带递 归性 的 问题 , 处理 起 来 就相 当方 便 . 单 地说 , 简 递 归 算法就 是直 接或 间接 的 调用 自己本 身 . 的基 它 本 思路是 : 是把 问 题 转化 为 规模 缩 小 了的 同类 问 题 的子 问题 , 当求解 规模为 n的问题 时 , 先将 其 分 解 成若干 个规模 较小 的与原 问题具 有相 同特 征 的
l ( )As w C l cin l i 1To3 n Ne ol t , n的下标 1到 3 e o i
表示 三 根 柱 子 的 柱 号 . 的 每 个 元 素 为 集 合 类 它 形, 集合 类 似 于数 组 , 可 以 比数 组更 灵 活 、 有 但 更 效 的方式 处理 集 合 中数 据 项 , 可 以保 存 VB中 它 各 种不 同类型 的数 据 . 巧妙 的是 集 合 的两 个 方法 AD R mo e即给集 合 增 加 和 删 除 一个 项 目正 D、 e v 好 能模拟 跟踪 每个 柱 子 上 园 盘 的增 加 和减 少 , 而 集合 的 C u t 性 则 自动 记 录 了每 个 柱 子 上 园 on 属
2l O 1年 l 2月 第 3 卷 第 6期 1
郧 阳 师 范 高等 专科 学 校 学报
J u n lo n a gTe c esColg o r a fYu y n a h r l e e
De . 2 l e Ol
Vo . l No 6 13 .
汉诺 塔 的 动态 演 示程 序
郭 亚庆
( 十堰职 业技 术 学院 电子工 程 系 ,湖北 十堰 420 ) 4 0 0
[ 摘 要 ] 程 序 设 计 中, 归算 法 一 直 是 教 学 的 难 点 . 帮助 学 生对 递 归 调 用 有 深 刻 的理 解 , 制 作 汉 诺 在 递 为 特 塔 动 态 演 示程 序 。 而把 复 杂的 教 学 问题 变为 直 观 , 动 的动 画教 学 , 从 生 以提 高 教 学效 果 . [ 关键 词 ] 归算 法 , 态演 示 , 递 动 集合 , 序 简 化 程 [ o]O 3 6 /. s 。 08 6 7. 0 1 0 . 1 d il . 9 9ji n 1 0 - 0 2 2 1 . 6 07 s