C语言-递推递归.pptVIP

  • 12
  • 0
  • 约7.95千字
  • 约 47页
  • 2017-11-17 发布于河南
  • 举报
C语言-递推递归

第二讲 基础算法 目录 递推 递归 排序与检索 递推 指一个序列u1,u2,u3,…,un-1,un,后面的每一项都能按公式由前面的一项或连续的几项推算出来,或者前面的每一项都能按公式由后面的一项或连续的几项推算出来。前者叫“顺推”,后者叫“逆推”。 递推 有5人坐在一起,当问第5个人多少岁,他说比第4个人大2岁,问第4个人多少岁,他说比第3个人大2岁,依此下去,问第一个人多少岁,他说他10岁,最后求第5个人多少岁? 显然可以得到如下公式: 斐波那契级数-递推的经典问题 一对新生小兔,一个月后长成中兔,从第三个月开始长成大兔并每个月生一对小兔。按此规律,一年后共有多少对兔子。 Fibnacci 数列 例-巧妙推算走楼梯 楼梯有n级台阶,如果一步走1级或2级,试问:共有多少种不同的走法? 例-巧妙推算走楼梯 总结:递推求解的基本方法: 首先,确认:能否容易的得到简单情况的解? 骨牌铺放 伯努利装错信封问题 分析思路: 得到如下递推公式: 递归 递归 递归 递归 递归 Hanoi(汉诺塔)问题:三根柱子A、B、C,其中A柱上有64个大小不等的圆盘,并且大的在下,小的在上。要求把这64个圆盘从A柱移动到C柱上,每次只能移动一个圆盘,移动时可以借助B来进行,但在任何时候,任何柱上的圆盘都必须保持大盘在下,小盘在上。求移动的过程。 递归 (1)假如只有一个盘子的话,可以直接将盘子从A柱移动

文档评论(0)

1亿VIP精品文档

相关文档