课程设计 C语言背包问题的模拟,共5页,1950字。 一、题目分析 本课设是一个对实际问题的研究,背包的总质量一定,n件物品的质量也是一定的,通过用栈的回塑来用不同质量物品装满整个背包。先将n件物品一一装进背包中,每装一件,用所装入物品的总质量与背包的最大质量进行比较,当所装入的物品总质量小于背包的的 最大质量时,继续此程序。当装入背包的物品总质量大于背包的总质量时,从背包取出一个物品,并继续反复往背包中装入物体过程。如此往复,直到所装物体总质量等于背包的重量为止。此时输出所有可能情况。若不能装满此背包,则输出此问题无解。 二、设计过程 1:设计过程 对于本课设算法的设计方法,可以考虑用试探法进行——将这些物品按序号由小到大的次序放入包中,并对放置的不同情况做出不同的处理。具体地说,就是假设当前正在试探第K个物品W[k]的放置情况,则可能有以下三种情况; (1) 放置后正好满足条件,则将其放入背包中,并输出。 (2) 放置后,背包中总重量小于背包的最大容量Max Weight,需继续放置;假设其后面还有,即K﹤Number,则从其后面物品选取一些,使其满足条件。即从W[k+1]~W[Number]中选择若干物品放入背包,使背包的物品质量之和为Max-weight而这可以通过递归调用来实现,所不同的是要选择的是总质量。 ...... |
- 上一篇:北京理工大学Java课程设计报告 火柴游戏
- 下一篇:毕业设计 分布式组卷算法的研究
查看评论
已有0位网友发表了看法