推理是一种逻辑思维,一种方法论,归纳推理是从个性推导到共性的过程,而演绎推理则从共性递推到个性的过程。事物的一般性和特殊性,是推理方法的基点,通过下面例子来简单理解下归纳推理是如何从特殊上升到一般。

数学归纳法首先证明起点值命题成立,然后证明从n值到n+1的过程有效,而后任意值递推可得。

证明自然数N的阶乘N!步骤:

已知N!=N*(N-1)*(N-2)*(N-3)*…*2*1,当N=1时 N!=1,设当R(N)=N!,证明R(N+1)=(N+1)!成立。

证明过程:R(N+1)=(N+1)!=(N+1)*(N)*(N-1)*…*2*1=(N+1)*N!=(N+1)*R(N)=(N+1)!

显然递归也是利用数学归纳法的思想来构造函数,对于阶乘N!的递归函数实现如下:

factorial(int N){

if (N ==1)   return 1; /*退出*/

return  N * factorial (N - 1)   /*递归*/

}

递归函数所蕴含的递推思想,正和数学归纳法相通。递归式主函数定义如下:

就不开展,对(n/b)分别在整合幂、上取整、下取整的情况。

算法导论之数学归纳法和递归相关推荐

  1. 算法导论 — 4.4 用递归树方法求解递归式

    笔记 在应用代入法求解递归式时,需要事先做出一个好的猜测.然而,有时候做出好的猜测是很困难的,此时可以考虑采用递归树方法.在递归树中,每个结点表示一个单一子问题的代价.创建递归树之后,对树的每层的各子 ...

  2. 算法导论-3.递归部分习题选

    这一部分主要算法导论中递归式.堆排序和快速排序章节里选择的对我而言较有价值的题目. 练习4.1-1 证明 $T(n)=T(\lceil n/2\rceil)+1$ 的解为 $O(\lg n)$ . 解 ...

  3. 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)

    给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1) template<typename T> void insert_recursive(BinaryTree< ...

  4. 写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2)

    写出TREE-MINIMUM 和TREE-MAXIMUM的递归版本(算法导论第三版12.2-2) template<typename T> BinaryTreeNode<T>* ...

  5. 非递归遍历二叉树(算法导论第三版第十章10.4-5)

    非递归遍历二叉树(算法导论第三版第十章10.4-5) template<typename T> void TraverseBinaryTreeNonRecursive(BinaryTree ...

  6. 给定一个n节点二叉树,写出一个O(n)时间的非递归的过程,将该树每个结点的关键字输出(算法导论第三版第十章10.4-5)

    给定一个n节点二叉树,写出一个O(n)时间的非递归的过程,将该树每个结点的关键字输出.要求除该树本树的存储空间外只能使用固定量的额外存储空间,且过程中不得修改该树,即使是暂时的修改也不允许. (算法导 ...

  7. 给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)

    给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构 (算法导论第十章10.4-3) template<typename T> ...

  8. 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)

    给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出 (算法导论第十章10.4-2) #include <iostream> template<typena ...

  9. 【算法导论-主定理】用主方法求解递归式 学练结合版

    问题:若某算法的计算时间表示为递推关系式:T(N)=2T(N/2)+NlogN 且 T(1)=1 则该算法的时间复杂度为( ). O(Nsqrt(N)) O(NlogN) O(N(logN)^2) O ...

最新文章

  1. java变量初始化0.00
  2. ubuntu16.04x下搜狗输入法无法输入中文
  3. Dagger2 在 Android 项目的正确使用方式【完整篇】
  4. 怎样应对“需求不确定型项目”?
  5. 分享一本有关数据结构的书籍(Python版)
  6. threadpooltaskexecutor线程池使用_线程池的理解及使用
  7. 我的日常Vim使用--凌波微步
  8. 多变量遗传算法python代码_遗传算法介绍并附上Python代码
  9. Ubuntu20安装向日葵
  10. 威联通建php邮件服务器_威联通 ※ 群晖 虚拟机性能对比 我可能要碰瓷 eSir
  11. 谷歌应用程序无法启动,因为应用程序的并行配置不正确的问题解决方案
  12. python教程视频 网盘-Python最新全套视频教程百度网盘资源
  13. 编译udf小软件(附视频教程)
  14. Hibernate5相关特性参考
  15. openssl官网-下载安装过程
  16. sdkman的介绍、安装及使用
  17. 15个值得推荐的个人提升方法
  18. 如何快速计算汉字笔画数
  19. string拼接时去掉最后一个逗号
  20. 库函数讲解及模拟实现库函数

热门文章

  1. uniapp下载文件保存自定义目录
  2. HTC-G4刷机过程
  3. 小学计算机考试模板,小学信息技术考试方案模板.doc
  4. 亚马逊国际获得AMAZON商品详情 API
  5. PSM倾向性评分分析介绍、spss进行倾向性评分分析示例
  6. 英语敢死队 第三周学习总结感受
  7. 古堡算式_经典的全排列问题(福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也)
  8. 虚拟现实中的眼睛跟踪
  9. 谷歌浏览器实验室的小功能
  10. 关键词优化难易程度如何判断?