- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪心算法和随机法 第五章 试验报告
实验报告
实验目的: 理解和掌握贪心算法和随机算法的思想。
实验内容:通过解决几个实际例子,来理解和加深对贪心算法以及随机算法的应用。
实验过程:
1.背包问题
1.1问题描述
有一个背包,背包的容量是150。有7个物品,物品可以分割成任意大小。要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。
1.2算法分析
因为物品可以任意分割,所以可以计算每件物品的单位质量的价值,然后从大到小排序,然后从序列中价值最高的第一个物品开始选起,在保证载容范围内,直到装不下第i个整个物品时, 则计算余留空间的容量,得到此物体应分割多少装进去。
1.3程序框图
物品 A B C D E F G 重量 35 30 60 50 40 10 25 价值 10 40 30 50 35 40 30 单位价值 0.28574 1.33333 0.50000 1.00000 0.87500 4.00000 1.20000 顺序 7 2 6 4 5 1 3 装入的物品为:F(10),B(30),G(25),D(50),E(35)
40 + 40 + 30 + 50+ 0.875*35=190.63
1.4程序源代码
//----------背包问题
#includestdio.h
#define N 7
#define C 150
float weight[7];
float value[7];
float pervalue[7];
int n,a[7];
float max=0;
void readdata()
{
int i;
for(i=0;iN;i++)
scanf(%f,weight[i]);
for(i=0;iN;i++)
scanf(%f,value[i]);
for(i=0;iN;i++)
{
pervalue[i]=value[i]/weight[i];
// printf(%f ,pervalue[i]);
}
for(i=0;iN;i++)
a[i]=i;
}
void sort()
{
int i,j,t;
for(i=0;iN;i++)
{
for(j=i+1;jN;j++)
if(pervalue[j]pervalue[a[i]])
{ t=a[i];a[i]=a[j];a[j]=t;}
}
}
float search()
{
int i,j;
float con,val;
for(i=0;iN;i++)
{
con=weight[a[i]];
val=value[a[i]];
for(j=i+1;jN;j++)
if(weight[a[j]](C-con))
{
con+=weight[a[j]];
val+=value[a[j]];
}
else
{
val=val+(pervalue[a[j]])*(150-con);
con=150;
}
if(maxval)
max=val;
}
// printf(\n%f,max);
return (max);
}
void main()
{
int i;
float v;
scanf(%d,n);
for(i=0;in;i++)
{
max=0;
readdata();
sort();
v=search();
printf(%.2f\n,v);
}
}
2. 照亮的山景
2.1问题描述
在一片山的上空,高度为T处有N个处于不同位置的灯泡,如图。如果山的边界上某一点于某灯i的连线不经过山的其它点,我们称灯i可以照亮该点。开尽量少的灯,使得整个山景都被照亮。山被表示成有m个转折点的折线。
2.2算法思想
照亮整个山景相当于照亮每一个转折点。
可对每个凹点画向上方的延长线,交于高度线,从而得到每一个凹点被照到时灯所放置的范围区间,然后以每个区间的后端点由小到大排序。然后对于排好序的区间,检查其后点所能同时找到的区间,并标记。知道所有的区间都被标记完,即说明所有的凹点被照到,也就是整个山景被照亮。
2.3程序框图
1 3
2
2.4程序源代码
#include stdio.h
int M,N;
int b[100];
float left,right,x[100],y[100],qian[50],hou[50],top=40.0;
void readdata()
{
int i;
printf(输入折点的个数:);
您可能关注的文档
- 财务管理的基本值观念.doc
- 财务管理课后练答案.doc
- 财务部岗位职责5-80.doc
- 财务风险防范论 财务防范控制论文.doc
- 财富中心二期五段防开裂、防渗漏、防潮专项方案.doc
- 财政与金融》实练习及答案.doc
- 财政学考题+参答案.doc
- 财科所考研不可读的内容.doc
- 财税体制改革参答案95分.doc
- 财经学教程试题答案.doc
- 北交所策略北交所新质生产力后备军筛选系列二十一,关注赛英电子、康美特等.docx
- 北交所科技成长产业跟踪第三十三期:中央财经委定调推进海洋经济高质量发展,关注北交所深海经济产业链企业.docx
- 策略化选股月报:6月情绪择时组合大幅跑赢市场,当前市场情绪评分维持中高位.docx
- 策略深度报告:从白酒、新能源汽车和煤炭牛市看银行未来的时间及空间,银行:趋势的力量,坚定的胆量.docx
- 5月港口集装箱吞吐量同比增速5.4,集运远洋航线运价走势延续分化.docx
- 5月全社会债务数据综述:资金空转难持续.docx
- 6月行业信息回顾与思考:谈一谈消费行业以价换量的现状.docx
- 7月转债策略展望:估值不低、结构性仍有空间,关注主线切换.docx
- 2025年7月量化行业配置月报:小盘风格,未到拥挤时,科技望占优.docx
- 2025年中期人形机器人行业投资策略报告:量产破局,链动新机.docx
最近下载
- CAD链轮的画法 用CAD链轮的画法 实用.doc VIP
- 2025年电工技师考试题及答案.doc VIP
- 2024—2025学年江苏省苏州市沙溪高级中学高二上学期9月月考语文试卷.doc VIP
- 建筑工程项目管理制度.pdf VIP
- 运动康复中心的创新商业模式探索.docx VIP
- 员工婚丧及伤病住院慰问金实施办法.doc VIP
- TZZB 3693-2024 工程机械渗碳重载圆柱齿轮.pdf
- 护理查房急性心肌梗死护理查房.pptx VIP
- 统编版小学语文五年级上册第一单元 落花生 大单元学历案 教学设计附双减作业设计(基于新课标教学评一体化).docx VIP
- 2025年电工(技师)证考试题及电工(技师)试题答案 .pdf VIP
文档评论(0)