【概述】

  1. 递推算法:通过已知条件,利用相邻的数据项间的关系(即:递推关系),得出中间推论,直至得到结果的算法。
  2. 递推关系:给定一个数的序列H0,H1,…,Hn,若存在整数N0,使当n>N0时,可以用=/>/<将Hn与其前面的某些项Hi(0<i<n)联系起来。
  3. 特点:避开了求通项公式的麻烦,把一个复杂问题的求解,分解成了连续的若干简单运算。
  4. 基本思想:把一个复杂的庞大的计算过程转化为简单过程的多次重复。
  5. 逆推与顺推:在计算时,如果可以找到前后过程之间的数量关系(即:递推式),那么,从已知条件推到问题叫顺推,从问题出发推到已知条件叫逆推。
  6. 递推与递归的比较:相对于递归算法,递推算法免除了数据进出栈的过程,也就是说,不需要函数不断的向边界值靠拢,而直接从边界出发,直到求出函数值。

【经典应用】

1.斐波那契数列的递推实现

int Fibonacci(int n)
{  if (n<0)  return -1;  int n1=1,n2=2,n3=3;for (int i=3;i<=n;++i)  {  n3=n1+n2;  n1=n2;  n2=n3;  }  return n3;
}

2.汉诺塔问题的递推实现

#include<stdio.h>
int ct=1;//记录步数,在步骤中输出
void move(int n,char from,char to)
{printf("第 %2d 步:把第 %d 个盘子:  %c >>>>>>> %c\n",ct++,n,from,to);
}
int hanoi(int n)//输出步数:
{int cnt = 2,ans = 1;if(n == 1)return 1;elsereturn 2* hanoi(n-1) +1;
}
void hanoi_tower(int n,char x,char y, char z) //输出步骤
{if(n==1)move(1,x,z);else{hanoi_tower(n-1,x,z,y);move(n,x,z);hanoi_tower(n-1,y,x,z);}
}
int main()
{int n;//盘子个数printf("输入盘子个数:\n");scanf("%d",&n);char x = 'A',y = 'B',z = 'C';int t = hanoi(n);printf("一共需要%2d步。\n",t);hanoi_tower(n,x,y,z);return 0;
}

关于汉诺塔问题:点击这里

【例题】

  1. 昆虫繁殖(信息学奥赛一本通-T1312):点击这里
  2. 位数问题(信息学奥赛一本通-T1313):点击这里
  3. 过河卒(信息学奥赛一本通-T1314):点击这里
  4. Pell数列(信息学奥赛一本通-T1189):点击这里
  5. 上台阶(信息学奥赛一本通-T1190):点击这里
  6. 放苹果(信息学奥赛一本通-T1192):点击这里
  7. 吃糖果(信息学奥赛一本通-T1193):点击这里
  8. 移动路线(信息学奥赛一本通-T1194):点击这里
  9. 踩方格(信息学奥赛一本通-T1196):点击这里
  10. Cantor表(洛谷-P1014):点击这里
  11. 猜数字(HDU-2178):点击这里
  12. 母牛的故事(HDU-2018):点击这里
  13. 折线分割平面(HDU-2050):点击这里
  14. 统计问题(HDU-2563):点击这里
  15. Sumsets(POJ-2229):点击这里
  16. Moo Volume(POJ-2231):点击这里
  17. 台阶问题(洛谷-P1192):点击这里
  18. 钥匙计数之一(HDU-1483):点击这里
  19. Numbers on the Chessboard(CF-1027B):点击这里
  20. Coloring Dominoes(Atcoder-2697):点击这里
  21. Blackboard Fibonacci(CF-217B):点击这里
  22. Binary Tree(HDU-5573)(二进制枚举):点击这里
  23. 处女座与汉明距离(2019牛客寒假算法基础集训营 Day2-E)(格雷码的构造):点击这里

基础算法 —— 递推算法相关推荐

  1. 算法竞赛宝典-递推算法

    算法竞赛宝典-递推算法 Problem A [递推]挖地雷 待更新 问题 B: [递推]偶数3的个数 时间限制: 1 Sec 内存限制: 64 MB 题目描述 "报告,我军已探出地雷阵中所有 ...

  2. 扩展欧几里得算法_扩展欧几里得递推算法

    欧几里得算法 表示 整数 a 与 b 的最大公约数. 若 t = a % b, 则 证明略. 递推版 gcd 算法 gcd 接受变量元组 (a, b) 作为输入,输出最大公约数 (r). 我们很难直接 ...

  3. matlab如何仿真递推型dft算法,递推dft算法

    0.7 0.8 0.9 1 0.6 0.7 0.8 0.9 1 伯格(Burg)递推算法 L-D算法缺点: 在计算相关函数估计时,对N个观测数据以 外的数据作零的假设,故谱估计误差较...... 第3 ...

  4. 算法设计与分析第一章递推算法

    算法设计与分析 第一章 递推算法 1.概述 在**已知条件**和**所求问题**之间总存在着某种相互联系的关系,如果可以找到前后过程之间的数量关系(即递推式),那么,从**问题出发逐步推到已知条件** ...

  5. java穷举密码_穷举算法和递推算法(Java)

    穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况.穷举算法效率不高,但是适合一些没有明显规律可循的场合. 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定范 ...

  6. YbtOJ「基础算法」第1章 递推算法

    YbtOJ 大全 [例题1]错排问题 设 f [ n ] f[n] f[n] 表示 n n n 个数时的合法方案数.初始化 f [ 1 ] = 0 , f [ 2 ] = 1 f[1]=0,f[2] ...

  7. 2022蓝桥杯B组—积木画——递推算法

    积木画 题目描述 小明最近迷上了积木画,有这么两种类型的积木,分别为 III 型(大小为 222 个单位面积)和 LLL 型(大小为 333 个单位面积): 同时,小明有一块面积大小为 2×N2×N2 ...

  8. 0x02.基本算法 — 递推与递归

    目录 一.递推与递归 二.分治 三.模拟计算机实现递归 四.相应习题: 0.AcWing 92. 递归实现指数型枚举(递归/循环+位运算) 1.AcWing 93. 递归实现组合型枚举 2.AcWin ...

  9. 求逆元的两种方法+求逆元的O(n)递推算法

    到国庆假期都是复习阶段..所以把一些东西整理重温一下. gcd(a,p)=1,ax≡1(%p),则x为a的逆元.注意前提:gcd(a,p)=1; 方法一:拓展欧几里得 gcd(a,p)=1,ax≡1( ...

最新文章

  1. 万字长文爆肝 DNS 协议!
  2. 小K的农场(luogu P1993
  3. Oracle之外部表
  4. oracle主从表分离怎么实时更新数据_高可用数据库主从复制延时的解决方案
  5. smtp中mailfrom是必须的吗_你是住在高层建筑中吗?这是你必须了解的
  6. python基本语法:字典
  7. 如何利用navicat可视化软件添加与新建mysql数据库
  8. c语言规定 程序中用到的变量一定要,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  9. 微信可以远程控制电脑吗_上车| 手机远程控制手机,还可以控制电脑
  10. boost采取什么驱动电路_当我们只是采取积极的意愿时会发生什么?
  11. 淘宝购物车分享上线第一天:630万人在用购物车社交
  12. iOS获取、写入系统相册图片
  13. http请求出现406错误解决方案
  14. 如何优雅地给同事提“改进性建议”
  15. 详细名单:Google的581个域名
  16. LaTeX算法流程中英文伪代码
  17. 英语时态8种基本时态讲解
  18. 空手套白狼之——兼职中介
  19. jvm如何排查生产环境cpu飙高的问题
  20. 【已解决】戴尔笔记本wifi速度慢的问题。

热门文章

  1. 书还可以这样做?3分钟扒光这本变态级作品 | 文末有福利
  2. LWIP之UDP协议
  3. 求解九宫格的Java_使用全排列方法解九宫格问题
  4. 收到字节 Offer,月薪 45k,揭秘面试流程及考点
  5. H哥亲测可用!一个点外卖省钱的小技巧!
  6. 美团配送A/B平台评估体系建设与实践
  7. x-requested-with 请求头 区分ajax请求还是普通请求
  8. Hadoop--ip和主机名配置
  9. Java知识点汇总1
  10. 数据库“裸奔”再引祸端:VOIPO数百万呼叫和短信日志流出