第6章 递归——自己定义自己
汉诺塔问题
递推公式(recursion relation, recurrence)
解析式:只使用n表示H(n)的式子。
在问题中找出递归结构——> 建立递归公式
阶乘的递归定义:n!=n×n(n-1)!
递归和归纳:
同:都是“将复杂问题简化”;
异:“从一般性前提退出个别性结论”——递归;“从个别性前提推出一般性结论”——归纳。
斐波那契数列
思考题:不断繁殖的动物
斐波那契数列例子:
摆砖头、创作旋律、鹦鹉螺的内壁间隔、葵花种子的排法、植物枝叶的长法、“一次走1阶或2阶,爬n层阶梯的方法”
帕斯卡三角形:每个数字都是上方与它相邻的两数之和。
帕斯卡三角形中出现组合数的原因:“相邻两数相加”和“n中选k的组合数”的计算对象相同。
递归定义组合数:
组合的数学分析法
找出问题中的递归结构的步骤:
从n层的整体问题中隐去部分问题 -> 判断剩余部分是否是n-1层的问题
递归图形:树、谢尔平斯基三角形(Sierpinski gasket, Sierpinski triangle)
分形图:含有递归结构的图形。
相关推荐
[12]优秀程序员之路——C++开发经验及技巧大汇总.zip上位机开发VC串口学习资料源码下载[12]优秀程序员之路——C++开发经验及技巧大汇总.zip上位机开发VC串口学习资料源码下载[12]优秀程序员之路——C++开发经验及...
C~C++程序员实用大全——C~C++最佳编程指南.pdf(3)
程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.
C_C++程序员面试宝典——第17章_思维拓展,大家共分享
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南.part6.rar
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南
《程序员面试宝典——经典》是一本专门为准备进入IT行业或者寻求职业晋升的程序员量身打造的面试指南。这本书深入浅出地解析了面试中常见的技术问题和面试技巧,旨在帮助读者更好地理解和应对面试挑战。以下是一些...
C~C++程序员实用大全——C~C++最佳编程指南.part5
"程序员实用算法——sourceCode"这个主题涵盖了各种在实际开发中经常遇到的算法,通过源代码的形式来展示这些算法的实现。下面将详细介绍一些重要的算法类型及其应用。 1. 排序算法:包括快速排序、归并排序、冒泡...
【程序员之路———关于代码风格】的探讨主要集中在代码风格的重要性、代码行极限、缩进方式、折行原则以及空格和空行的使用。这些规范对于任何程序员来说都是提高代码可读性和团队协作效率的基础。 1. **代码行...
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了从基础知识到高级特性的全面内容,是提升C/C++编程技能的理想资源。 首先,书...
程序员小飞解密——纯新手的我,到底该把宝押在python2还是python3??
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了C和C++的基础到高级主题,是提升技能和深入理解这两种语言精髓的重要资源。 ...
在这个“优秀程序员之路——ASP.NET开发经验及技巧大汇总”中,我们将深入探讨ASP.NET的核心概念、开发实践以及各种实用技巧,帮助你提升编程技能,成为一名出色的开发者。 首先,ASP.NET的基础知识是必不可少的。...
《程序员数学3》是一本专为程序员设计的数学学习书籍,其主要目的是帮助读者理解并应用数学在实际编程中的重要性。这本书强调易懂性,通过简洁明了的讲解方式,使得复杂的数学概念变得平易近人。尤其适合那些希望...