实验项目二:算法的基本策略_第1页
实验项目二:算法的基本策略_第2页
实验项目二:算法的基本策略_第3页
实验项目二:算法的基本策略_第4页
实验项目二:算法的基本策略_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法设计与分析实验报告实验项目(二) 算法的基本策略专业、班级学号姓名实验时间实验地点指导教师教学目标使学生掌握“算法设计与分析”中的基本原理、基本技术和方法,提升计算机问题求解的水平。熟练掌握编程中常见问题的求解策略,培养学生对算法复杂性进行正确分析的能力。(1) 掌握编程求解问题的常用算法策略。(2) 熟练强化深入计算机求解问题的过程。(3) 增强理论结合实际能力,增强获得理论联系实际问题的能力。(4) 培养系统分析能力和团队协作能力。一、 实验目的及要求(1) 练习运用枚举、迭代、分治、贪心和动态规划等基本算法策略求解问题;(2) 熟练掌握算法基本策略的建模和编码实现。二、 实验设备(环

2、境)及要求使用C/C+语言,Visual Studio 201X开发环境,Windows系列操作系统环境三、 成绩评定题号题型能力分值成绩备注设计题分析20设计题分析30设计题分析40报告格式10总成绩四、 实验内容与步骤1、 编写程序,分别用二分法和牛顿迭代法求解方程x3 3x 1 = 0在x = 2附近的实根,要求计算精确到小数点后7 位数字为止,并将求出的近似结果与理论值2cos20 比较误差大小。设二分法的初始迭代区间为 1, 3,牛顿迭代法的起点为4。2、 将一张100 元的钞票换成1 元、2元、5 元和10 元的零钱,每种零钞至少一张,编写程序输出所有的换法,尽可能地提高算法效率。

3、3、 用动态规划求解设备更新问题。某人打算购买一辆新的小货车用于运货,货车的售价是22 万元人民币。货车购买后,每年的各种保险费、养护费等费用如下表:如果5年内将货车售出,并再购买新车,5 年内的二手车销售价如下表:设计一种购买货车的方案,使5 年内用车的总费用最少。选作:将其中所有的数据,包括售价、年份、各年份的费用和各年份二手车销售价等的数据改为任意值。1.二分法:#include#includevoid main() double x,x1=1,x2=3,f1,f2,f; f1=x1*x1*x1-3*x1-1; f2=x2*x2*x2-3*x2-1; if(f1*f20) printf(

4、在此区间没有根!); else do x=(x1+x2)/2; f=x*x*x-3*x-1; if(f=0) break; else if(f1*f0) x1=x; f1=f; else x2=x; while(fabs(x1-x2)=0.000001); printf(近似值为: %.7fn,x); printf(与理论值相差为: %.7f,x-1.8793852); 牛顿迭代法:#include#includevoid main()double f0,f1,x0,x1=2;do x0=x1; f0=3*x0*x0-3; f1=x0*x0*x0-3*x0-1; x1=x0-f1/f0;whi

5、le(fabs(x1-x0)=0.0000001);printf(近似值为: %.7f,x1);printf(与理论值相差: %.7f,x1-1.8793852);2.#includeusing namespace std;int main()int N,i,j,k,l,n=0;cout请输入一个正整数N(1N1000)N;for(i=1;i=N;i+)for(j=1;j=N/2;j+)for(k=1;k=N/5;k+)for(l=1;l=N/10;l+) if(i*1+j*2+k*5+l*10=N)cout其中一元有:i张 二元有:j张 五元有:k张 十元有:l张endl;n+;cout一共

6、有:n种组合方式endl;return 0;3.源代码:#include #include using namespace std;int pro5 = 3,5,10,16,21 ;/货车保护费int sale6 = 0,17,15,7,4,2 ;/二手车销售价格int minmoney = -65536;#define MAX 20int numMAX = 1,2,3,4 ;int n = 0;vectorvectorps;void solve(int n) vectorvectorps1;vectorvector:iterator it;vectors;ps.push_back(s);fo

7、r (int i = 0; i n; i+) ps1 = ps;for (it = ps1.begin(); it != ps1.end(); +it) (*it).push_back(numi);for (it = ps1.begin(); it != ps1.end(); +it) ps.push_back(*it);void show() vectorvector:iterator it;int i = 1;for (it = ps.begin(); it ps.end(); +it) int money = 0;cout 第 i 种方案: endl;i+;for (vector:ite

8、rator sit = (*it).begin(); sit != (*it).end(); +sit) if (sit = (*it).begin() money = money - pro*sit - 1 + sale*sit - 22;else money = money - pro*sit - *(sit - 1) - 1 + sale*sit - *(sit - 1) - 22;cout t在第 *sit 年卖出并购入新车 endl;if (*it).empty() money = money - pro4 + sale5 - 22;cout t在第 5 年卖出并购入新车 endl;else money =money-pro4 - *(*it).end()-1) + sale5 - *(*it).end()-1) - 22;cout t在第 5 年卖出并购入新车 endl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论