遞迴 Recursion.

Slides:



Advertisements
Similar presentations
七年级数学校本课程 台山市任远中学 李锦明. 1. 最古老的过河问题 1. 最古老的过河问题 一个农民携带一只狼,一只羊和一 箱卷心菜,要借助一条小船过河。 小船上除了农民只能再带狼、羊、 卷心菜中的一样。而农民不在时, 狼会吃羊,羊会吃菜。农民如何过 河呢?
Advertisements

做中国梦 走特色路 —— 宁波电大业余党校时政课 林志标 四川雅安地震 2013 年 4 月 20 日 8 时 02 分四川省雅安市芦山县(北纬 30.3, 东 经 )发生 7.0 级地震。震源深度 13 公里。震中距成都约 100 公里。成都、重庆及陕西的宝鸡、汉中、安康等地均有较.
海南省疾病预防控制中心. (一)基本情况  工作用房面积: ㎡,其中实验室使用面积为 6500 ㎡  中心定编 213 人,其中全额预算编制 193 人,自筹编制 20 人  现有在职职工 320 名,其中专业技术人员占 84.3% 。 人性化的办公场所实验室区域 一、海南省疾病预防控制中心概况.
四、后期物理复习备考建议 不同阶段复习课教学设计(知识建构)的目的 复习课教学 设计的目的 理 解 · 对某知识的全面、抽 象理解 · 抽象知识和具体情景 的转化 综 合 · 多知识点联合解决问 题 基本素质 · 审题、表达、审视答 案等基本能力 复习 ( 一 ) 复习(二) ☆ ☆☆☆ ☆☆  进行科学规划.
102學年度第二學期 家長日親師座談會 歡迎蒞臨 丹鳳高中. 高中成績規則介紹 註冊組 段考成績計算方式 學科加權後計算 國文*4+英文*4+數學*4+… 班級名次 類組共同學科加權計算 國文*4+英文*4+數學*4+…(社會組自然組) 類組名次 年級共同學科加權計算 國文*4+英文*4+數學*4(考試題目相同)
最根本的養生之道 主講人:無毒的家國際連鎖店創辦人 《不用刀的手術》作者 王康裕 不用刀的手術 ── 布魯士根菜汁的神奇配方.
H7N9 禽流感. H7N9 流感确诊病例主要表现 1 、起病急; 2 、病程早期均有高热 (38 ℃以上 ) ,伴咳嗽等呼 吸道感染症状,起病 5-7 天出现呼吸困难; 3 、典 型的病毒性肺炎,重症肺炎并进行性加重,部分 病例可迅速发展为急性呼吸窘迫综合症并死亡。
电子商务专业人才培养方案 五年制高职. 一、招生对象、学制与办学层次  (一)招生对象:初中毕业生  (二)学制:五年  (三)办学层次:专科.
人感染H7N9禽流感医院感染 预防与控制技术指南
传染病预检分诊工作要求 发热门诊管理要求.
德 国 鼓 励 生 育 的 宣 传 画.
3.2 农业区位因素与农业地域类型.
密云季庄小 学心理讲座 合理情绪 幸福生活 武金红 密云教研中心.
做好学校甲型H1N1流感防控工作 确保师生身体健康
H7N9禽流感相关知识
前进中的山东省昌乐二中.
甘肃4班面试专项练习4 应急应变 主讲: 凌宇 时间:6月3日.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
只要大家共同努力,禽流感是可以預防的疾病。
菏泽市初中历史水平考试备考研讨与交流 菏泽市教研室 张红霞.
企劃撰寫.
计算学科的基本问题 本章首先介绍一个对问题进行抽象的典型实例——哥尼斯堡七桥问题。然后,通过“梵天塔”问题和“停机问题”分别介绍学科中的可计算问题和不可计算问题。从“梵天塔”问题再引出算法复杂性中的难解性问题、P类问题和NP类问题,证比求易算法,P=NP是否成立的问题。
合 同 法 主讲人: 教材:《合同法学》(崔建远) 2017/3/10.
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
歡迎蒞臨 三年八班大家族 導師:陳冠諠老師 16個帥氣寶貝 16個漂亮寶貝.
解排列组合问题的常用策略.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
人力資源管理委員會 主席:魏麗香部長 執秘:董家檥督導 委員:林姿伶HN、黃士豪HN、潘秋華HN 林素琴專師組長、卓惠瑄、張維恩、王孟萱、
第五組 幼兒安全與衛生教育 組員: 譚郁馨 張喻晴 沈恩華
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
如何认识数学课程与教学 太原师范学院数学系 韩龙淑.
交通事故處置 當事人責任與損害賠償 屏東縣政府警察局交通隊.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
必修Ⅰ 地球上的水 第三章.
项目2-1 店铺的定位.
中央广播电视大学开放教育 成本会计(补修)期末复习
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
10.2 分子动理论的初步知识 蒙城县乐土中学 袁亮.
致亲爱的同学们 天空的幸福是穿一身蓝 森林的幸福是披一身绿 阳光的幸福是如钻石般耀眼 老师的幸福是因为认识了你们 愿你们努力进取,永不言败.
《中华人民共和国传染病防治法》部分知识 河西区卫生局.
第十二单元 第28讲 第28讲 古代中国的科技和文艺   知识诠释  思维发散.
“08高考化学学业水平(必修科目)测试的命题和教学对策研究”
建議題.
中考语文积累 永宁县教研室 步正军 2015.9.
腸病毒防治宣導 主講者 陳玟吟護理師.
小学数学知识讲座 应用题.
甲型H1N1流感预防常识 北仑区疾病预防控制中心.
倒装句之其他句式.
物理学专业 光学实验绪论 主讲人:路莹 洛阳师范学院物理与电子信息学院 2009年3月.
高点定位 精准发力 扎实推进优质均衡再上新台阶 ——全县初中教学工作会议讲话
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
物件導向程式設計 (Object-Oriented rogramming)
函數(一) 自訂函數、遞迴函數 綠園.
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
排列组合 1. 两个基本原理 分类加法计数原理 分步乘法计数原理.
第11章 递归 张坤龙 天津大学计算机学院.
數學遊戲一 河內塔 (Tower of Hanoi)
第三节 常见天气系统.
计算机问题求解 – 论题1-4 - 基本的算法结构 2018年10月09日.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
資料結構與C++程式設計進階 遞迴(Recursion) 講師:林業峻 CSIE, NTU 6/ 17, 2010.
植物激素的调节 一、生长素的发现过程 动物激素是由内分泌细胞合成与分泌。 1、达尔文实验:①证明单侧光照射能使 产生
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
第八节 算术运算符和算术表达式.
認識H1N1 盧亞人醫院 感控護士 劉秀屏.
新高中通識教育科課堂的 教學規劃和應試訓練
美丽的旋转.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
認識﹋禽流感*.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

遞迴 Recursion

遞迴的基本觀念 遞迴:recursion,程式撰寫的重要技巧 特色: 函數以遞迴條件呼叫自己本身 必須加入終止條件,以免無窮的呼叫自己 增加可讀性,但是執行效率一般會比較差 某些程式語言沒有支援遞迴的程式撰寫 支援:C、VB

直接遞迴與間接遞迴 系統使用一個stack紀錄每次呼叫的順序 函數呼叫自己本身,稱為直接遞迴 兩個以上函數互相呼叫,形成一迴路,稱為間接遞迴 例如:A呼叫B,B呼叫C,C呼叫A

簡單的遞迴範例 //計算1+2+…+n sum(n) = [1 + 2 + 3 + … + (n-1)] + n int sum(int n) { int r; if (n==1) r = 1; else r = sum(n-1) + n; return (r); } sum(n) = [1 + 2 + 3 + … + (n-1)] + n = sum(n-1) + n 同樣的 sum(n-1) = sum(n-2) + n-1 … sum(n) = sum(n-1) + n = sum(n-2) + (n-1) + n = sum(n-3) + (n-2) + (n-1) + n = … stop condition : sum(1) = 1

如何追蹤遞迴結果 DEMO…

什麼時候可以使用遞迴解決問題 當你的問題具有遞迴特性的時候 花時間去分析問題

如何設計遞迴 找出遞迴規則 設定終止條件 避免造成無窮遞迴

遞迴函數的例子 n!的計算 乘法的計算 a*b 最大公因數的計算 河內塔問題(Tower of Hanoi)

n!的計算 n! = 1 * 2 * 3 * ... * (n-1) * n 遞迴的規則 終止條件 n! = n * (n-1)! 1! = 1 終止條件 n=1時終止 if n>1 if n=1

練習 寫出n!的遞迴計算程式 程式主程式main() 直接遞迴,所以只需要一個遞迴函數fac() 遞迴函數中,用if區分終止條件與遞迴條件 if n>1 if n=1 程式主程式main() 直接遞迴,所以只需要一個遞迴函數fac() 遞迴函數中,用if區分終止條件與遞迴條件

乘法的計算 a*b a * b 如何用加法的遞迴方式表示? 遞迴條件: a * b = a * (b-1) + a = [a * (b-2) + a] + a = ... 結束條件: a * 1 = a

河內塔問題(Tower of Hanoi) 問題: 搬移限制: 有三根柱子A、B、C 在A上面有n個盤子,由上而下編號1到n。考慮最簡單的情形 n=3 目標:將n個盤子搬到C 搬移限制: 每次只能搬移柱子最上面的一個盤子 在整個過程中,編號大的盤子不可以放在編號小的盤子上面

河內塔問題(Tower of Hanoi) A B C A B C

河內塔問題 - 3個盤子處理 將1號盤子從A搬到C 2號盤子從A搬到B 1號盤子自C搬到B 3號盤子搬到C 1號盤子從B搬到A

河內塔問題 - n個盤子處理 將1至n-1的盤子從A搬到B (借用C) 將編號n的盤子從A搬到C 把1至n-1的盤子從B搬到C 重點: 遞迴條件的停止?

河內塔問題 - n個盤子處理 A B C n 1 n-1 A B C n 1 n-1 A B C n 1 n-1 A B C n 1 n-1

河內塔問題-程式與時間複雜度 時間複雜度: 假設n個盤子搬移次數是h(n) n個盤子的搬移,等於兩次n-1盤子的搬移,加上一個單一盤子的移動 h(n) = 2 * h(n-1) + 1 用數學歸納法可證得,h(n) = 2n -1

最大公因數的計算 e.g. gcd(180, 75) = 15 非遞迴的做法: 找出二者共同的質數因數,予以相乘

最大公因數的計算 gcd問題包含 一個終止條件(m<=n and n%m==0) 兩個遞迴條件 程式撰寫時,仍然是寫在一個函數內 if m<=n and n%m==0 if n<m otherwise gcd問題包含 一個終止條件(m<=n and n%m==0) 兩個遞迴條件 程式撰寫時,仍然是寫在一個函數內

問題 1+2+3+…+N 想出各種解法?

作業一 Fibonacci費氏數列(費伯那西) 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, … if n = 1, 2 if n > 2