首 页
大学试题
CMS专题
工学
经济学
专升本
法学
教育学
历史学
更多分类
搜索
题库考试答案搜索网 > 题目详情
当前位置:
首页
>
阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。采用回溯法来求解该问题。首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{1,2,…,m},将解空间用树形结构表示。接着从根节点开始,以深度优先的方式搜索整个解空间。从根节点开始,根节点成为活节点,同时也成为当前的扩展节点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新节点。判断当前的机器价格(C11)是否超过上限(cc),重量(W11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,根节点不再是扩展节点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新节点。同样判断当前的机器价格(C11+C21)是否超过上限(cc),重量(W11+W21)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,原来的节点不再是扩展节点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活节点为止。C代码:下面是该算法的C语言实现。(1)变量说明n:机器的部件数。m:供应商数。cc:价格上限。w[][]:二维数组,w[i][j]表示第j个供应商供应的第i个部件的重量。c[][]:二维数组,c[i][j]表示第j个供应商供应的第i个部件的价格。bestW:满足价格上限约束条件的最小机器重量。bestC:最小重量机器的价格。bestX[]:最优解,一维数组,bestX[i]表示第i个部件来自哪个供应商。cw:搜索过程中机器的重量。cp:搜索过程中机器的价格。x[]:搜索过程中产生的解,x[i]表示第i个部件来自哪个供应商。i:当前考虑的部件,从0到n-1。j:循环变量(2)函数backtrack
>
题目详情
问题题干
答案解析
相关问题
热门问题
最新问题
问题详情
阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。采用回溯法来求解该问题。首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{1,2,…,m},将解空间用树形结构表示。接着从根节点开始,以深度优先的方式搜索整个解空间。从根节点开始,根节点成为活节点,同时也成为当前的扩展节点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新节点。判断当前的机器价格(C11)是否超过上限(cc),重量(W11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,根节点不再是扩展节点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新节点。同样判断当前的机器价格(C11+C21)是否超过上限(cc),重量(W11+W21)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,原来的节点不再是扩展节点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活节点为止。C代码:下面是该算法的C语言实现。(1)变量说明n:机器的部件数。m:供应商数。cc:价格上限。w[][]:二维数组,w[i][j]表示第j个供应商供应的第i个部件的重量。c[][]:二维数组,c[i][j]表示第j个供应商供应的第i个部件的价格。bestW:满足价格上限约束条件的最小机器重量。bestC:最小重量机器的价格。bestX[]:最优解,一维数组,bestX[i]表示第i个部件来自哪个供应商。cw:搜索过程中机器的重量。cp:搜索过程中机器的价格。x[]:搜索过程中产生的解,x[i]表示第i个部件来自哪个供应商。i:当前考虑的部件,从0到n-1。j:循环变量(2)函数backtrack
时间:2021-09-01 12:07
关键词:
算法设计和分析
中级软件设计师
答案解析
<p> <m br=""><bestw br="">(1)bestX[j]=x[j]<br> (2)j<m<br> (3)x[i]=j<br> (4)cw<bestW<br> (5)cp=cp-c[i][j]</bestw></m></p>
相关问题
叙述软件设计在软件工程中所处的位置和重要性。
阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。说明:设某一机器由n个部件组成,每一个部件都可以从m个不同的供应商处购得。供应商j供应的部件i具有重量Wij和价格Cij。设计一个算法,求解总价格不超过上限cc的最小重量的机器组成。采用回溯法来求解该问题。首先定义解空间。解空间由长度为n的向量组成,其中每个分量取值来自集合{1,2,…,m},将解空间用树形结构表示。接着从根节点开始,以深度优先的方式搜索整个解空间。从根节点开始,根节点成为活节点,同时也成为当前的扩展节点。向纵深方向考虑第一个部件从第一个供应商处购买,得到一个新节点。判断当前的机器价格(C11)是否超过上限(cc),重量(W11)是否比当前已知的解(最小重量)大,若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,根节点不再是扩展节点。继续向纵深方向考虑第二个部件从第一个供应商处购买,得到一个新节点。同样判断当前的机器价格(C11+C21)是否超过上限(cc),重量(W11+W21)是否比当前已知的解(最小重量)大。若是,应回溯至最近的一个活节点;若否,则该新节点成为活节点,同时也成为当前的扩展节点,原来的节点不再是扩展节点。以这种方式递归地在解空间中搜索,直到找到所要求的解或者解空间中已无活节点为止。C代码:下面是该算法的C语言实现。(1)变量说明n:机器的部件数。m:供应商数。cc:价格上限。w[][]:二维数组,w[i][j]表示第j个供应商供应的第i个部件的重量。c[][]:二维数组,c[i][j]表示第j个供应商供应的第i个部件的价格。bestW:满足价格上限约束条件的最小机器重量。bestC:最小重量机器的价格。bestX[]:最优解,一维数组,bestX[i]表示第i个部件来自哪个供应商。cw:搜索过程中机器的重量。cp:搜索过程中机器的价格。x[]:搜索过程中产生的解,x[i]表示第i个部件来自哪个供应商。i:当前考虑的部件,从0到n-1。j:循环变量(2)函数backtrack
论设计模式在软件开发中的应用 设计模式描述了在特定场景下解决一般设计问题的类和相互通信的对象。一个设计模式命名、抽象并确定了一个通用设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。现在,设计模式已经广泛地应用在软件开发中。 请围绕"设计模式在软件开发中的应用"论题,依次对以下3个方面进行论述: ①概要叙述你参与分析和开发的应用项目,以及你所担任的主要工作。 ②简要介绍设计模式的基本概念及分类,详细说明在你所参与分析和开发的应用项目中应用了哪些设计模式、方法,以及选用它们的原因。 ③分析并讨论使用设计模式的效果,并分析和评价设计模式对软件开发的影响。
阅读以下说明和C++代码,将应填入____处的语句或语句成分写在答题纸的对应栏内。 某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前30%的学生。【C++代码】
阅读下列人力资源管理问题的叙述,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】M是负责某行业一个系统集成项目的项目经理,因人手比较紧张,M从正在从事编程工作的高手中选择了小张作为负责软件子项目的项目经理,小张同时兼任模块的编程工作,这种安排导致软件子项目失控。
最新问题
通过程序设计活动求解问题时,通常可分为问题建模、算法设计、编写代码和编译调试4个阶段。()阶段的工作与所选择的程序语言密切相关。
阅读以下说明和C函数,将应填入____处的语句或语句成分写在答题纸的对应栏内。 说明1:函数deldigit(char*s)的功能是将字符串s中的数字字符去掉,使剩余字符按原次序构成一个新串,并保存在原串空间中。其思路是:先申请一个与s等长的临时字符串空间并令t指向它,将非数字字符按次序暂存入该空间,最后再复制给s。【C函数】 说明2:函数reverse(char*s,intlen)的功能是用递归方式逆置长度为len的字符串s。例如,若串s的内容为"abcd",则逆置后其内容变为"dcba"。【C函数】
阅读以下说明和C函数,将应填入____处的语句或语句成分写在答题纸的对应栏内。 已知单链表L含有头节点,且节点中的元素值以递增的方式排列。下面的函数DeleteList在L中查找所有值大于minK且小于maxK的元素,若找到,则逐个删除,同时释放被删节点的空间。若链表中不存在满足条件的元素,则返回-1,否则返回0。例如,某单链表如图11-3所示。若令minK为20,maxK为50,则删除后的链表如图11-4所示。 链表节点类型定义如下: 【C函数】
阅读以下说明,回答【问题1】~【问题4】,将解答填入答题纸的对应栏内。
阅读以下说明,回答问题1-5,将答案填入答题纸对应的解答栏内。
结构化系统分析与设计中的详细设计包括 Ⅰ.代码设计 Ⅱ.逻辑设计 Ⅲ.输入/输出设计 Ⅳ.模块设计和功能设计 Ⅴ.程序设计 Ⅵ.数据库文件设计
阅读以下说明和C++代码,将应填入_____处的字句写在答题纸的对应栏内。 【说明】已知类LinkedList表示列表类,该类具有4个方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。4个方法的含义分别如下。voidaddElement(Obect):在列表尾部添加一个对象。ObjectlastElement():返回列表尾部对象。intnumberOfElement():返回列表中对象的个数。voidremoveLastElement():删除列表尾部的对象。现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式来实现。【C++代码1】 【C++代码2】 【问题】若类LinkedList新增加了一个公有的方法removeElement(intindex),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(intindex)?__(5)__(A.继承B.组合)
软件设计包括软件的结构设计、数据设计、接口设计和过程设计,其中结构设计是指()
软件设计包括软件的结构设计、数据设计、接口设计和过程设计,其中结构设计是指()
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 说明:某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图10.41所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中添加新的餐饮形式,得到如图10.42所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图10.41中的甜点菜单。类Menultem表示菜单中的菜式。
别人在看