首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和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
25
问题
阅读下列说明和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://jikaoti.com/ti/ZZa7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下基于Linux操作系统部署DHCP服务的技术说明,根据要求回答问题1至问题3。【说明】某地市图书馆内部局域网划分为办公区、电子阅览室、无线阅览室等3个VLAN,并通过一台带防火墙模块的路由器与Internet网互连。为了便于整个局域网IP
X.25规范对应OSI参考模型中的3层,X.25的第3层描述了分组的格式及分组交换的过程。X.25的第2层由LAPB(LinkAccessProcedure,Balanced)实现,它定义了用于DTE/DCE连接的帧格式。X.25的第1层定义了电气和
在图8-12所示的拓扑结构中的代理服务器上依次单击“开始→程序→管理工具→路由与远程访问,并在系统弹出的界面中打开“IP路由选择”目录树,然后用鼠标右键单击“NAT/基本防火墙”,选择[新增接口]命令。接着若选择接口1的“本地连接”,最后进行如图8-13所
阅读以下说明,回答问题1和问题2。【说明】对小范围(不超过100米)内的组网来说,最常见的为以集线器(Hub)为中心的对等式局域网。在网线的制作中,对线的标准有两个:EIA/TIA568A和EIA/TIAT568B标准。
随着Internet的发展,用户对网络带宽的要求不断提高,传统的接入网已成为整个网络中的瓶颈,以新的宽带接入技术取而代之已成为目前研究的焦点。其中最引人注意的是光纤接入技术。
给出域名解析的两种方案。当dns服务器发生故障,我们是否可以访问网络上的计算机?如果可以,需要什么条件?说明原因。
在OSI参考模型有哪几层?Windows组网中采用什么工具来实现域的创建和管理?在什么情况下需要设置“主域”?
请阅读以下说明和Socket程序,将应填入(n)处的字句写在对应栏内。网络应用的基本模型是客户机/服务器模型,这是一个不对称的编程模型,通信的双方扮演不同的角色:客户机和服务器。一般发起通信请求的应用程序称为客户软件,该应用程序通过与服务器进程
阅读以下说明,回答问题1~4,将答案填入对应的解答栏内。某公司申请了一个C类地址210.45.12.0,公司的域名为xyz.com.cn,域名服务器地址为210.45.12.50。公司有生产部门、市场部门、财务部分、人事部门、技术部门和经理办公室,
阅读以下说明,回答问题1~6,将答案填入对应的解答栏内。某公司有一个局域网,在ISP申请了Internet接入,接入方式是以太网,ISP分配给了一个固定的IP地址为222.152.199.33、子网掩码为255.255.255.252、默认网关为2
随机试题
窗口中的状态栏一般用于显示当前的操作状态或提示信息。()
中国金融期货交易所规定,当日结算价是指某一期货合约()成交价格按照成交量的加权平均价。
甲公司正在考虑调整资本结构,有关资料如下:(1)公司目前债务的账面价值1000万元,利息率为5%,债务的市场价值与账面价值相同;所有者权益账面金额4000万元(与市价相同);每年的息税前利润为500万元。该公司的所得税税率为20%。(2)为了提高企
我国的基本政治制度有()
灭菌注射器和针头,下列哪一组,手均可触及
((安全生产法》对安全生产危险性较大的行业进行了规定,“矿山、建筑施工单位和危险物品的生产、经营、储存单位,应当()。”
热力管道球阀焊接要求中,符合规范要求的是()。
下面关于道家学派的表述,正确的是()。
设函数f(x)连续,若F(μ,ν)=dxdy,其中区域Dμν为图1—4—1中阴影部分,则=()
Internet实现了分布在世界各地的各类网络的互联,其最基础和核心的协议是()。
最新回复
(
0
)