(精品)第2章(2)━━常用算法的应用实例.ppt
《(精品)第2章(2)━━常用算法的应用实例.ppt》由会员分享,可在线阅读,更多相关《(精品)第2章(2)━━常用算法的应用实例.ppt(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+程序设计程序设计第第2章章(2)常用算法的应用实例常用算法的应用实例1主要内容主要内容l常用算法及其基本思想常用算法及其基本思想l直接算法的应用实例直接算法的应用实例l递推算法的应用实例递推算法的应用实例l迭代算法的应用实例迭代算法的应用实例l枚举算法的应用实例枚举算法的应用实例2常用算法及其基本思想常用算法及其基本思想l由于问题种类的多样性、复杂程度的差异性,使得算法具有多样性,但从思想方法由于问题种类的多样性、复杂程度的差异性,使得算法具有多样性,但从思想方法上,常用算法可归纳为:上,常用算法可归纳为:直接算法:直接算法:根据问题给出的条件直接进行求解。根据问题给出的条件直接进行求解。
2、递推算法:递推算法:通过问题的一个或多个已知解,用同样的方法逐个推算出其他解。通过问题的一个或多个已知解,用同样的方法逐个推算出其他解。迭代算法:迭代算法:通过问题的迭代公式,以某个初值为起点,通过一次次迭代,由一个值推通过问题的迭代公式,以某个初值为起点,通过一次次迭代,由一个值推算出下一个值,直到迭代出的值满足问题要求为止。算出下一个值,直到迭代出的值满足问题要求为止。迭代法本质上就是递推法。迭代法本质上就是递推法。枚举算法:枚举算法:在有限范围内列举出所有可能的结果,找出其中符合要求的解。在有限范围内列举出所有可能的结果,找出其中符合要求的解。筛选算法:筛选算法:后续章节中介绍。后续章节
3、中介绍。递归算法:递归算法:后续章节中介绍。后续章节中介绍。回溯算法:回溯算法:后续章节中介绍。后续章节中介绍。排序算法:排序算法:后续章节中介绍。后续章节中介绍。查找算法:查找算法:后续章节中介绍。后续章节中介绍。3直接算法的应用实例直接算法的应用实例l直接算法是根据问题给出的条件直接进行求解,很多的问题都可采用这种方法。直接算法是根据问题给出的条件直接进行求解,很多的问题都可采用这种方法。【例例】(求(求 2 200 之间的所有素数。)之间的所有素数。)分析:分析:2、3是素数,偶数不是素数,只要依次判断是素数,偶数不是素数,只要依次判断 5200 之间的奇数是否素数。之间的奇数是否素数。
4、素数:将素数:将 n 分别除以分别除以 2、3、4、n-1,若都不能整除,则若都不能整除,则 n 就是素数。就是素数。理论证明只要将理论证明只要将 n 分别除以分别除以 2、3、4、sqrt(n),就可判断就可判断 n 是否素数。是否素数。#include#include#include void main()int i,j,k=2,n;cout “2 200 之间的素数:之间的素数:n”;cout setw(10)2 setw(10)3;4 for (i=5;i200;i+=2 )n=sqrt(i);for (j=3;j=n+1)cout setw(10)i;k+;if (k%4=0)cou
5、t endl;cout endl;运行:运行:2 200 之间的素数:之间的素数:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 197 193 197 199 5【例例】(用(用C+产生随机数的库函数产生随机数的库函数rand(),产生两个三位数整数,设计一个自动出题产生两个三位数整数,设计一个自动出题程序,可出加、减、乘、除四种运算,做这四种运算也由随机数确定。共
6、出程序,可出加、减、乘、除四种运算,做这四种运算也由随机数确定。共出10题,题,每题每题10分,最后给出总的得分。)分,最后给出总的得分。)分析:分析:rand()%900 产生产生 0 899 之间的随机整数之间的随机整数 rand()%900+100 产生产生 100 999 之间的随机三位整数之间的随机三位整数 rand()%4 产生产生 0 3 之间的随机整数,分别代表之间的随机整数,分别代表 +-*/#include#include void main()int a,b,c,d,op;for (int sum=0,i=1;i=10;i+)a=rand()%900+100;b=rand
7、()%900+100;op=rand()%4;6 switch (op)case 0:cout a “”b “”;c=a+b;break;case 1:cout a “”b “”;c=a-b;break;case 2:cout a “”b “”;c=a*b;break;case 3:cout a “”b d;if (d=c )cout “得得10分!分!n”;sum+=10;else cout “不得分!不得分!n”;cout “答对:答对:”sum/10 “题题n”;cout “得分:得分:”sum “分分n”;运行:运行:141 567 79947 得得10分分!500 369 869 得
8、得10分分!778 658 511924 得得10分分!264 405-141 得得10分分!881 724 157 不得分不得分!591 395 233445 得得10分分!427 136 3 得得10分分!304 402-98 得得10分分!392 782-390 得得10分分!816 918 0 得得10分分!共答对:共答对:9题题总得分:总得分:90分分7递推算法的应用实例递推算法的应用实例l递推算法是序列计算中的常用方法,是通过问题的一个或多个已知解,用同样的方递推算法是序列计算中的常用方法,是通过问题的一个或多个已知解,用同样的方法逐个推算出其他解,即按照一定的规律来推算出序列中的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 常用 算法 应用 实例
限制150内