首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 设有n个货物要装入若干个容量为C的集装箱以便运输,这n个货物的体积分别为{S1,S2,…,Sn},且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 设有n个货物要装入若干个容量为C的集装箱以便运输,这n个货物的体积分别为{S1,S2,…,Sn},且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装
admin
2019-10-07
41
问题
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
设有n个货物要装入若干个容量为C的集装箱以便运输,这n个货物的体积分别为{S1,S2,…,Sn},且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装箱来装运这n个货物。
下面分别采用最先适宜策略和最优适宜策略来求解该问题。
最先适宜策略(firstfit)首先将所有的集装箱初始化为空,对于所有货物,按照所给的次序,每次将一个货物装入第一个能容纳它的集装箱中。
最优适宜策略(bestfit)与最先适宜策略类似,不同的是,总是把货物装到能容纳它且目前剩余容量最小的集装箱,使得该箱子装入货物后闲置空间最小。
【C代码】
下面是这两个算法的C语言核心代码。
1.变量说明
n:货物数
C:集装箱容量
s:数组,长度为n,其中每个元素表示货物的体积,下标从0开始
6:数组,长度为n,b
表示第i+1个集装箱当前已经装入货物的体积,下标从0开始
i,j:循环变量
k:所需的集装箱数
min:当前所用的各集装箱装入了第i个货物后的最小剩余容量
m:当前所需要的集装箱数
temp:临时变量
2.函数firstfit
int firstfit()
{
int i,j;
k=0;
for(i=0;i<n;i++)
{
b
=0;
}
for(i=0;i<n;i++)
{
______(1);
while(C-b[j]<s
){
j++;
}
______(2);
k=k>(=i+1)?k;(j+1);
}
return k;
}
3.函数bestfit
int bestfit()
{
int i,j,min,m,temp;
k=0:
for(i=0;i<n;i++)
{
b
=0;
}
for(i=0;i<n;i++)
{
min=C;
m=k+1;
for(j=0;j<k+1;j++)
{
temp=C-b[j]s
;
if(temp>0 && temp<min)
{
______(3);
m=j;
}
}
______(4);
k=k>(m+1)?k:(m+1);
}
return k;
}
考虑实例n=10,C=10,各个货物的体积为{4,2,7,3,5,4,2,3,6,2}。该实例在最先适宜和最优适宜策略下所需的集装箱数分别为______(9)和______(10)。考虑一般的情况,这两种求解策略能否确保得到最优解?______(11)(能或否)
选项
答案
(9)5 (10)4 (11)否
解析
本题考查最先适宜策略和最优适宜策略。这两种策略在题目的描述中给出了清楚的解析,对于最先适宜策略,其关键是每次将一个货物装入第一个能容纳它的集装箱中;而对于最优适宜策略,则总是把货物装到能容纳它且目前剩余容量最小的集装箱。
下面我们来具体分析程序。函数firstfit()是实现最先适宜策略的,从程序不难看出,第(1)空所在的for循环,就是要将n个货物装入到集装箱。根据算法的描述,是依次从第一个集装箱找,找到合适的就装入货物,依次每装入一个货物,都是依次从第一个集装箱找。结合后面的程序不难知道j标识这当前是第几个集装箱。因此每装入一个货物后,要将j清0,标识从头再找,因此第(1)空的答案是j=0。而接下来的while循环,从其条件表达式C-b[j]<s
不难知道,是比较当前集装箱和当前货物的体积大小,如果当前集装箱体积小,则比较下一个集装箱,否则,就应该将货物装入该集装箱,并且调整集装箱剩余体积的大小,在本题中,这个是通过数组b来实现的,因此第(2)空的答案应该为b[j]=b[j]+s
。
第(3)和第(4)空是在函数bestfit()下,这个函数是实现最优适宜策略的。 从程序中不难看出,for(j=0;j<k+14;j++)就是要在众多的集装箱中找到最合适的集装箱,而第(3空是条件if(temp>0 && temp<min)成立时,执行的语句,该条件成立,表示当前找到的集装箱比原来确定的集握箱更合适,而最合适的集装箱的剩余体积存放在min中,因此第(3)空的答案为min=temp,而循环缮束后,就应该找到了合适的集装箱,这时应该将货物存放到集装箱里面,即第(4)空的答案为b[m]=b[m]+s
。
在本题中,不管是采用最先适宜策略,还是最优适宜策略,他们都是根据不同策略选择目前看来最优的情况,这都属于贪心算法的思想。从两个函数不难看出,其时间复杂度是一样的,都是O(n2)。
笫3个问题,其实是这个题目中最简单的问题,也是算法的一个实际应用。对于这个实例,如果采用最先适宜策略,那么货物{4,2,3}存放在第一个集装箱,而{7,2}存放在第二个集装霜,{5,4}存放在第三个集装箱,{3,6}存放在第四个集装箱,而{2}存放在第五个集装箱。
如果采用最优适宜策略,那么货物{4,2,4}存放在第一个集装箱,而{7,3}存放在第二个集装箱,{5,2,3}存放在第三个集装箱,{6,2}存放在第四个集装箱。
因为这两种方法都是采用的贪心策略,那么在一般情况下,是不能确保得到最优解的。
转载请注明原文地址:https://kaotiyun.com/show/ssxZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
双绞线可以制作成直连线和交叉线两种形式,在图3-12所示的拓扑结构中,交换机与路由器(Router)相连的双绞线应制作成什么形式?仔细阅读以下与路由器(Router)的快速以太网接口实现不同VLAN间路由的相关配置信息,结合图3-12所示的拓扑结构图
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?为了保证FTP服务器的数据安全,每个在读取文件时,只能读取和执行相关文件,请问在
为了便于用户下载相关资料,特安装一台FTP服务器,其服务器端软件是Serv-U,假如要增加一个名为CIU10009的用户,对应目录为D盘,且要求加密,在图6-4中怎么设置?假如想将某用户在设咸FTP服务器管理员,其用户名称不变,请问在“Privileg
阅读以下说明,回答问题1、问题2、问题3、问题4和问题5,将解答填入对应栏内。[说明]Serv-U是一种被广泛运用的FTP服务器端软件,支持3x/9x/ME/NT/2000等Windows系列,利用它可以设定多个FTP服务器、限定登录用户的
请分别说出(1)与(2)的设备名称。请分别说出(1)与(2)的功能。
阅读以下关于网络应用系统模块测试的技术说明,根据要求回答问题1至问题4。【说明】某公司的枝术开发小组经过一年的努力,编码完成了本公司嵌入式产品——宽带路由器的NanOs程序,该程序规模约为31200行。公司经理指定郭工程师(以下简称为郭工)安排其
阅读以下关于HFC宽带接入Internet网的技术说明,根据要求回答问题1至问题4。【说明】混合光纤同轴电缆网(HFC网)应用数字和模拟传输技术,综合接入Internet、电话、模拟和数字广播电视、数字交互业务等多种业务,将计算机网络、有线电视网
阅读以下说明,回答问题1~6,将答案填入对应的解答栏内。某公司有一个局域网,在ISP申请了Internet接入,接入方式是以太网,ISP分配给了一个固定的IP地址为222.152.199.33、子网掩码为255.255.255.252、默认网关为2
随机试题
在传染病感染过程的五种表现中.所占比例最高且不易识别的是
某单洞双向交通隧道长1800m,对其进行运营环境检测,检测内容为风压、风速等,请回答以下问题。现场拟采用风表检测隧道内的风速,下列选项中关于风表的选择正确的有()。
政府服务项目采取邀请招标方式采购的,采购人应当通过随机方式选择()家以上的供应商,并向其发出投标邀请书。
以下是工业毒性的常用评价指标,其中错误的一项是()。
《劳动法》第五十三条规定:新建、同时设计、同时施工、同时改建、扩建工程的劳动安全卫生设施必须与主体工程
在国外,通常不会持有大量优先股票的机构投资者是()。
北京市甲公司与乙银行签订借款合同,约定甲公司以其所有的A大厦及其建设用地使用权为抵押物,贷款5000万元。双方办理抵押登记手续后,乙银行发放了贷款。甲公司后又在A大厦项目所在地块上增建了一幢商务配楼,尚未竣工。甲公司因另案被法院判决支付巨额债务,无法偿还乙
根据教育部2009年颁布的《中小学班主任工作规定》,班主任工作量按当地教师标准课时工作量的()进行计算。
=_______.
有二叉树如下图所示: 则前序序列为()。
最新回复
(
0
)