Cyclic Hanoi问题 李凯旭.

Slides:



Advertisements
Similar presentations
--- I think I____ (ride)my bike. --- If you___ ( 替代词 ), you___ (be)late. --- I think I’m going to______ ( 呆在家里 ) --- If you do, you’ll be sorry. --- I’m.
Advertisements

选项可猜测性评判与控制 实证研究 上海外国语大学 2008 级博士生 湖南师范大学外国语学院副教授 —— 邓杰.
办公室保健指南. 减少辐射篇 ❤显示器散发出的辐射多数不是来自它的正面,而是侧面和后面。因此,不要 把自己显示器的后面对着同事的后脑或者身体的侧面。 ❤常喝绿茶。茶叶中含有的茶多酚等活性物质,有助吸收放射性物质。 ❤尽量使用液晶显示器。
第七课:电脑和网络. 生词 上网 vs. 网上 我上网看天气预报。 今天早上看了网上的天气预报。 正式 zhèngshì (报告,会议,纪录) 他被这所学校正式录取 大桥已经落成,日内就可以正式通车 落伍 luòw ǔ 迟到 chídào 他怕迟到,六点就起床了.
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
一、真愛密碼 二、尋求真愛 三、有自尊的愛. 。如果雙方對愛情產生 質疑、困惑時,則表示 彼此之間的愛情關係仍 有 待加強或釐清,千萬別 急著為自己的人生大事 下決定。 我是一個 16 歲的未婚媽媽,發現自 己懷孕時,已經五個月大了,我知 道自己沒能力照顧孩子,在驚訝之 於,大人們只好坦然接受,幫我找.
大地遊戲王 課程實錄.
河內塔(Hanoi)問題.
性教育教學模組設計 主題:身體自主權 台中市忠明國小 巫偉鈴.
加強水銀體溫計稽查管制及回收 回收作業須知及緊急應變措施
举国上下抗击风雪灾害专刊 温暖行动 灾情告急年关近 万众一心齐抗灾 可歌可泣留千古 温暖行动遍人间 导读提示 阳关雨露出版社
整体销售方案 中山市美好物业代理有限公司
選擇性逐字紀錄 臺北市立教育大學 張 德 銳.
第4章 分錄及日記簿 4-1 借貸法則 4-2 日記簿的格式及記錄方法 4-3 分錄的意義及記錄方法 4-4 常見分錄題型分析
作文选刊 作文之窗
臺中市頭家國小 生理衛生講座 青春期的奧秘 ‧說到青春期,你會想到? ‧班級表現最好的,有獎徵答有優先權。 葉孟娟老師、黃文玲老師.
快乐假期 2010年第6期 总第54期 贝尔芬 主编 暑期作文专刊 《快乐假期》杂志社 出版.
第十三屆 Step.1 我們的目標 Step.2 我們的角色 Step.4 權利與義務 義務 權利 年繳會費五百元整
我们会赞叹生命之花的绚丽和多姿,也会歌颂生命之树的烂漫和青翠,但是生命是如此脆弱……
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
樂 樂 西 玩 西 玩 門 門.
财务管理.
老师:如何撰写教研文章? 主讲:石修银 谨以此赠与孜孜追求的老师 谨以此赠与改变人生的老师.
依“标”据“本”,命制考题 发表于《数学教学》2006年第9期 (华东师大核心“CN”刊物)
1. 民主社會裡,公民的參與有其重要性,而透過政治參與無法達成下列哪一項目的?
12星座 对于星座,你又知道多少呢? 第一刊.
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
数学通报简介 ——如何写稿及投稿 数学通报 郑亚利 2014年8月.
政府扶持资金通览 技术改造篇.
羽绒服海外销售 上海 德国汉堡 小组成员: 刘 娟 叶冬仪 谢洁霞 李洁茗 林佩旋 梁丽枝 简伟钳.
推进《玻璃钢制品工》 国家职业资格证书制度的建设
本期导读: 1版 习 惯 2版 的 十个做人的好习惯 3版 力 4版 量 5版 6版 7版 8版
如何提高研训教师职业素养 阜新市教师进修学院 王晓秋
one Counting units 2 ones 3 ones.
指導教授:許子衡 教授 報告學生:翁偉傑 Qiangyuan Yu , Geert Heijenk
Population proportion and sample proportion
本科生医保资料的提交.
樹狀結構 陳怡芬 2018/11/16 北一女中資訊專題研究.
統計圖表的製作.
Chapter 6 Advanced Counting Techniques
Course 9 NP Theory序論 An Introduction to the Theory of NP
Unit 4 My day Reading (2) It’s time for class.
生涯軌跡.
Chapter 5 Recursion.
句子成分的倒装(1).
高性能计算与天文技术联合实验室 智能与计算学部 天津大学
鄧姚文 資料結構 第一章:基本概念 鄧姚文
Mechanics Exercise Class Ⅰ
《结构力学认知实验》(授课形式)的上课时间改为: 5月5日(周二)晚上18:00~19:30和19:30~21:00,
每周三交作业,作业成绩占总成绩的15%; 平时不定期的进行小测验,占总成绩的 15%;
BORROWING SUBTRACTION WITHIN 20
3.5 Region Filling Region Filling is a process of “coloring in” a definite image area or region. 2019/4/19.
數學遊戲一 河內塔 (Tower of Hanoi)
Chap7 Recursive.
Presentation 约翰316演示 John 3 : 16
计算机问题求解 – 论题 算法方法 2016年11月28日.
Course 10 削減與搜尋 Prune and Search
新制退休實務計算說明- 現職人員退休範例說明
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
冀教版 九年级 Lesson 20: Say It in Five.
 隐式欧拉法 /* implicit Euler method */
定语从句(11).
5. Combinational Logic Analysis
神秘方塊.
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
厉害了,我的国! 15会计2班团支部 2018年4月20日.
梅竹賽 第二次公聽會
Unit 1 Book 8 A land of diversity
彼此相愛 Words & Music:盧弘傑 Paul Lu 讓我們彼此相愛 因為愛是從神來 讓我們彼此相愛 因為愛是從神來 耶穌為我們的罪作了挽回祭 這就是最偉大的愛 Let us love one another Because love come from the Lord Let us Love.
陳情表之外     with 三仁 三樂 歐陽宜璋製於 /10/23.
Presentation transcript:

Cyclic Hanoi问题 李凯旭

Hanoi 问题 subroutine move N from A to B using C: (1) if N is 1 then output “move A to B ”; (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to C using B ; (2.2) output “move A to B”; (2.3) call move N - 1 from C to B using A; (3) return.

Cyclic Hanoi问题 B C A

尝试直接用Hanoi方法 B C A 错! Define all the moving clockwise: subroutine move N from A to B using C: (1) if N is 1 then output “move A to B ”; (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to C using B ; (2.2) output “move A to B”; (2.3) call move N - 1 from C to B using A; (3) return.

回头再看Hanoi 问题 move N from X to Y using Z 递归的操作与N的规模是无关的 subroutine move N from A to B using C: (1) if N is 1 then output “move A to B ”; (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to C using B ; (2.2) output “move A to B”; (2.3) call move N - 1 from C to B using A; (3) return.

B C A A B A C subroutine move N from A to B using C: (1) if N is 1 then output “move A to B ”; (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to C using B ; (2.2) output “move A to B”; (2.3) call move N - 1 from C to B using A; (3) return.

Cyclic Hanoi问题(几乎全是这个!) using two mutually recursive procedures: To move n disks counterclockwise to the neighboring target peg: (1)move n − 1 disks counterclockwise to the target peg (2)move disk #n one step clockwise (3)move n − 1 disks clockwise to the start peg (4)move disk #n one step clockwise (5)move n − 1 disks counterclockwise to the target peg To move n disks clockwise to the neighboring target peg: (1)move n − 1 disks counterclockwise to a spare peg (3)move n − 1 disks counterclockwise to the target peg

递归的关系 Let C(n) and A(n) represent moving n disks clockwise and counterclockwise, then we can write down both formulas: C(n) = A(n-1) n A(n-1) A(n) = A(n-1) n C(n-1) n A(n-1).

Hanoi是怎么证明的? Cyclic Hanoi算法正确性的证明 部分正确性:数学归纳法 终止:n -> n-1 并且 n>=1

Cyclic Hanoi算法正确性的证明 终止:和Hanoi相同 部分正确性:同样用数学归纳法证明 (2)n-1 -> n 若n-1的情况成立,那么可以保证n-1个环可以顺时针移动一位或逆时针移动一位,那么推导出n的情况: 顺时针移动n个环与逆时针移动n个环

Cyclic Hanoi算法正确性的证明 Let C(n) and A(n) represent moving n disks clockwise and counterclockwise, then we can write down both formulas: C(n) = A(n-1) n A(n-1) A(n) = A(n-1) n C(n-1) n A(n-1). 一共需要三个函数: clockwise_move(N,X,Y,Z) counter_clockwise_move(N,X,Y,Z) move(N,X,Y,)

Cyclic Hanoi算法 subroutine move N from A to B using C(clockwise_move(N,A,B,C)): (1) if N is 1 then output “move A to B ”;(move(1,A,B)) (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to C using B ;(call counter_clockwise_move(N-1,A,C,B)) (2.2) output “move A to B”;(move(N,A,B)) (2.3) call move N - 1 from C to B using A;(call counter_clockwise_move(N-1,C,B,A)) (3) return.

B C A 自己的想法 subroutine move N from A to B using C: (1) if N is 1 then output “move A to B ”; (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to B using C ; (2.2) call move N - 1 from B to C using A ; (2.3) output “move A to B”; (2.4) call move N - 1 from C to A using B; (2.5) call move N - 1 from A to B using C; (3) return.

Cyclic Hanoi算法正确性的证明 终止:基本和Hanoi相同 部分正确性:同样用数学归纳法证明 (1)n = 1,即顺时针移动一位 (2)n-1 -> n 若n-1的情况成立,那么可以保证n-1个环可以顺时针移动,那么推n的情况: A(n) = A(n-1) A(n-1) n A(n-1) A(n-1). hanoi(N,X,Y,Z) move(N,X,Y)

Cyclic Hanoi算法的复杂程度 Let C(n) and A(n) represent moving n disks clockwise and counterclockwise, then we can write down both formulas: C(n) = A(n-1) n A(n-1) A(n) = A(n-1) n C(n-1) n A(n-1). 定性的感受一下步骤的增长速度: C(n) = 2A(n-1)+1 A(n) = 2A(n-1)+C(n-1)+2 -> A(n+1) = 2A(n)+C(n)+2 A(n+1) = 2A(n)+ 2A(n-1)+3 -> A(n+1) + (√ 3-1)A(n)= (√ 3+1)A(n)+ 2A(n-1)+3 A(n+1) + (√ 3-1)A(n) + a=p*(√ 3+1)^n (√ 3+1)A(n) < p*(√ 3+1)^n A(n) < p*(√ 3+1)^(n-1)

自己想法的复杂程度 B C A A(n) = 4A(n-1)+1 -> A(n) ≈ 4^(n-1) subroutine move N from A to B using C: (1) if N is 1 then output “move A to B ”; (2) otherwise (that is, if N is greater than 1) do the following: (2.1) call move N - 1 from A to B using C ; (2.2) call move N - 1 from B to C using A ; (2.3) output “move A to B”; (2.4) call move N - 1 from C to A using B; (2.5) call move N - 1 from A to B using C; (3) return. A(n) = 4A(n-1)+1 -> A(n) ≈ 4^(n-1)

Cyclic Hanoi问题 using two mutually recursive procedures: To move n disks counterclockwise to the neighboring target peg: To move n disks clockwise to the neighboring target peg: (wiki)The solution for the Cyclic Hanoi has some interesting properties: 1)The move-patterns of transferring a tower of disks from a peg to another peg are symmetric with respect to the center points. 2)The smallest disk is the first and last disk to move. (……) 3)Groups of the smallest disk moves alternate with single moves of other disks. C(n) = A(n-1) n A(n-1) A(n) = A(n-1) n C(n-1) n A(n-1). 4)The number of disks moves specified by C(n) and A(n) are minimal

谢谢!