首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和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
29
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下关于OSPF动态路由协议的技术说明,结合网络拓扑图回答相关问题1至问题4。【说明】最短路径优先(SPF)算法(也称为Dijkstra算法)是OSPF路由协议的基础。SPF算法将每一个路由器作为根(root)来计算其到每一个目的路由器的距离
双绞线可以制作成直连线和交叉线两种形式,在图3-12所示的拓扑结构中,交换机与路由器(Router)相连的双绞线应制作成什么形式?利用IEEE802.1QVLAN中继协议进行不同VLAN之间数据的路由时,需要在原有的以太网帧中加入4字节的IEEE
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
阅读以下说明,回答问题1和问题2。【说明】在一幢11层的大楼内组建一个局域网,该局域网的连接示意图如图5-4所示。
可供使用的合法IP还有多少哪些?请写出。使用内部IP进行地址转换,若用一台主机连接内外两个网络,请说出两种不同的网络接法并进行比较?
阅读以下说明,回答问题1和问题2。【说明】对小范围(不超过100米)内的组网来说,最常见的为以集线器(Hub)为中心的对等式局域网。在网线的制作中,对线的标准有两个:EIA/TIA568A和EIA/TIAT568B标准。
随着Internet的发展,用户对网络带宽的要求不断提高,传统的接入网已成为整个网络中的瓶颈,以新的宽带接入技术取而代之已成为目前研究的焦点。其中最引人注意的是光纤接入技术。
设计布线时,需要考虑哪些主要因素?结构化布线应遵循的国际标准有哪些?
请阅读以下说明和Socket程序,将应填入(n)处的字句写在对应栏内。网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。一般发起通信请求的应用程序称为客户软件,该应用程序通过与服务器进程
随机试题
阅读韩愈《张中丞传后叙》中的一段文字,然后回答。说者又谓远与巡分城而守,城之陷,自远所分始。以此诟远,此又与儿童之见无异。人之将死,其脏腑必有先受其病者;引绳而绝之,其绝必有处。观者见其然,从而尤之,其亦不达于理矣。解释文中划线字的含义。
有关产褥期抑郁症的说法正确的是下列何项
关于卫生毒理学的概念,不正确的是
某拟建项目有关资料如下:1.项目工程费用由以下内容构成。(1)主要生产项目1500万元,其中:建筑工程费300万元,设备购置费1050万元,安装工程费150万元。(2)辅助生产项目300万元,其中:建筑工程费150万元,设备购置费1
下列关于证券投资基金的特点,说法错误的是()。
往往被看作是核心存款的重要组成部分的是()。
个人理财业务是建立在()基础上的银行服务。
论述浪漫主义芭蕾的艺术特征。
以下关于静态路由的描述中,哪项是错误的?——
A、Theywillgoandbuycoffee.B、Theywillgoandbuythelottery.C、Theywillfinishthejob.D、Theywillbeginwiththejob.A
最新回复
(
0
)