ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:46.85KB ,
资源ID:22076028      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22076028.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法实验3报告Word格式文档下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法实验3报告Word格式文档下载.docx

1、TK(1=i=K)。已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。四、算法思想分析动态规划法的定义:在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解。动态规划通常应用于最优化问题,即做出一组选择以达到一个最优解。关键是存储子问题的每一个解,以备它重复出现动态规划设计一般要经历以下几个步骤:1、划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段。2、确定状态:将问题发展到各个阶段时所处的各种客观情况用不同的状态表示出来。3、确定决策并写出状

2、态转移方程:因为决策和状态转移有着天然的联系,状态转移就是根据上一阶段的状态和决策来导出本阶段的状态,所以如果确定了决策,状态转移方程也就可以写出。4、寻找边界条件:给出的状态转移方程是一个递推式,需要一个递推的终止条件或边界条件。5、程序设计实现:动态规划的主要难点在于理论上的设计,一旦设计完成,实现部分就会非常简单。背包问题1、减小规模m(i,j)是背包容量为j,可选择物品为i,i+1,n时0-1背包问题的最优值。m(i+1,j)可选择物品为i+1,n时0-1背包问题的最优值。m(n,j)可选择物品为n时0-1背包问题的最优值。规模已经为12、推导递归式,判断第i件?1)不放,背包当前产生

3、价值仍为m(i+1,j);2)放入,调整背包容量j-wi,背包当前产生价值为 m(i+1,j-wi)+Vi由0-1背包问题的最优子结构性质,可以建立计算m(i,j)的递归式如下:合唱队形算法分析:分别从左到右求最大上升子序列,从右到左求最大下降子序列,再枚举中间最高的一个人。算法时间复杂度O(N2)。思路:递推关系式bi=maxbj(1=j aj+1ci=maxcj(i aj+1 合唱队人数=maxbi+ci-1 (第i个人被重复计算了一次)出列人数=N-合唱队人数 =N-(maxbi+ci-1)i12345678ai186150200160130197220bicibi+ci五、算法源代码及

4、用户屏幕(1)编写一个简单的程序,解决0-1背包问题。#include stdlib.hstdio.hiostream.h#define N 5#define C 10int max(int p,int q) if(p=q) return p; else if(pq) return q;int min(int m,int n) if(mn) return n; int i=0,j=0;void KnapSack(int v,int w,int c,int n,int m11) int jMax=min(wn-1,c); for (j=0;j=jMax;j+)/*m(n,j)=0 0=wn*/m

5、nj=vn; for (i=n-1;i1;i-) int jMax=min(wi-1,c);j+)/*m(i,j)=m(i+1,j) 0=w1) m1c=max(m1c,m2c-w1+v1);void traceback(int m11,int w,int c,int n,int x) for(i=1;i0 ? 1:0);void main() int n=N,c=C,wN+1,vN+1; int mN+1C+1=0; int xN+1=0; printf(Please input w%dn,n);=5; scanf(%d,&wi);Please input v%dn scanf(vi); K

6、napSack(v,w,c,n,m); traceback(m,w,c,n,x);m110=%dn,m110); printf(%2d,xi); coutendl; (2)合唱队形安排。#include string.hiostream.h#include#define MAXN 200int main() int n, aMAXN, bMAXN, cMAXN,i, j,max; int pMAXN,xMAXN;请输入N的值, &n);请输入身高 for (i = 1; i = 1; j-) if (aj max) max = bj; pi=j; bi = max + 1; max=b1; f

7、or(i=2;=n; if(bimax) max=bi;/*求右侧的最长上升子序列*/ cn =1; /x1=0; for (i = n - 1; i 0; i-) max = 0; for (j = i + 1; j max = cj; / xi=j; ci = max + 1;/*枚举求最长队形*/ max = b1 + c1; if (bi + ci max = bi + ci;*出列人数为;n - max + 1(n);i: setw(5)i;/空格数aiai;bibi;cici;cout/*coutpifor(i=1;pi;xixi;*/return 0;六、实验过程分析掌握设计动态

8、规划算法的步骤。(1)找出最优解的性质,并刻划其结构特征。(2)递归地定义最优值。(3)以自底向上的方式计算出最优值。(4)根据计算最优值时得到的信息,构造最优解。动态规划算法的基本要素如下最优子结构:某个问题的最优解包含着其子问题的最优解。这种性质称为最优子结构性质最优子结构是问题能用动态规划算法求解的前提。重叠子问题:递归算法求解问题时,每次产生的子问题并不总是新问题,有些子问题被反复计算多次。这种性质称为子问题的重叠性质。动态规划算法对每一个子问题只解一次,而后将其解保存在一个表格中,当再次需要解此子问题时,只是简单地用常数时间查看一下结果。通常不同的子问题个数随问题的大小呈多项式增长。因此用动态规划算法只需要多项式时间,从而获得较高的解题效率。备忘录方法:备忘录方法的控制结构与直接递归方法的控制结构相同,区别在于备忘录方法为每个解过的子问题建立了备忘录以备需要时查看,避免了相同子问题的重复求解。步骤: 为每个问题建立一个记录项,初值设为一个特殊值(表未求解) 每个待求解子问题,首先查记录项,有解答则直接选取,否则求解该子问题。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1