首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和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
39
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
请结合图2-6所示的网络拓扑结构图及题干的相关描述信息,将图2-7所示的配置文件中的(1)~(4)空缺处的内容填写完整。请将以下(5)-(10)空缺处的内容填写完整。DHCP协议的前身是在传输层使用(5)协议的BOOTP协议,是BOOTP的增强
在安装RedhatLinux9.0操作系统的过程中,如果没有选择安装Web服务器,Apache服务器则需要手动安装。现从http://httpd.apache.org网站上免费下载了一个apache-2.2.3RPM格式的软件包,请将以下(1)空缺处
认真阅读下列有关Linux操作系统环境下配置Apache服务器的技术说明,根据要求回答问题1至问题5。【说明】随着电子商务日益普及,A公司建构了一台装有RedhatLinux9.0操作系统的虚拟服务器,为各类客户提供网上架构商务站点的Web服
X.25规范对应OSI参考模型中的3层,X.25的第3层描述了分组的格式及分组交换的过程。X.25的第2层由LAPB(LinkAccessProcedure,Balanced)实现,它定义了用于DTE/DCE连接的帧格式。X.25的第1层定义了电气和
请回答以下有关组网的问题1~4。【说明】设有A、B、C、D4台主机都处在同一个物理网络中,A主机的IP地址是192.155.12.112,B主机的IP地址是192.155.12.120,C主机的IP地址是192.155.12.176,D
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
通常,在该图书馆架构无线局域网(WLAN)的设计流程需要经过以下6个阶段:A.设备软硬件安装、调试B.确定无线局域网物理结构C.确定无线局域网逻辑结构D.进行需求分析和现场调研E.验收测试和维护F.进行设备产
设计布线时,需要考虑哪些主要因素?在设备间子系统设计时,从系统的安全设计上要考虑的主要因素有哪些?
设计布线时,需要考虑哪些主要因素?布线实施后,需要经过系统测试,测试线路的主要指标有哪些?
阅读以下说明,回答问题1、问题2、问题3。随着通信市场的日益开放,电信业务正向数据化、宽带化、综合化、个性化飞速发展,各运营商之间竞争日益激烈。而竞争的基本点就在于接入资源的竞争,如何快速、有效、灵活、低成本提供客户所需要的各种业务成为运营商首要考虑的问
随机试题
在西方美学史上,真正奠定悲剧理论基础的是古希腊的【】
AvianinfluenzaisaninfectiousdiseaseofbirdscausedbytypeAstrainsoftheinfluenzavirus.Thedisease,whichwasfirst
男性,65岁,吸烟40余年,慢性咳嗽、咳痰20余年,近2年来劳累时有气急。查体:两肺呼吸音减弱,肺下界下移,两肺底有细小湿哕音。最可能的诊断是
下列关于认股权证的杠杆作用说法正确的一项是()
某生产车间生产A、B两种产品。 1月份生产过程中领用400千克材料,单价100元/千克,本月投入A产品10件、B产品20件,消耗定额分别为20千克/件、10千克/件。 生产过程中发生生产人员工资20000元,A产品耗用1500小时,B产品耗用2500小
学习的主体因素是()。
想象来源于表象,以表象的内容为素材。()
America’sFederalReservecutinterestratesbyanotherquarter-point,to3.75%.WallStreet,whichhadbeen(1)_____forasixt
请在【答题】菜单中单击【考生文件夹】按钮,并按照题目要求完成下面的操作。注意:以下的文件必须都保存在考生文件夹下。期末考试结束了,初三(14)班的班主任助理王老师需要对本班学生的各科考试成绩进行统计分析,并为每个学生制作一份成绩通知单下
MEMOTo:AllapartmentresidentsFrom:DevonshireApartmentManagementOfficeDate:November30Subject:DAMOupdateDearreside
最新回复
(
0
)