逻辑思维。

fan791815297 2016-01-20 11:08:10
固定长度6米材料
现需求不同长度,不固定多少根。
剩余材料不可焊接,不考虑切割损耗,
如何结算出最少采购量


A: 1.5m 10根
B: 2m 30根
C: 5.5m 50根
D: 4m 40根
……
……
……
...全文
259 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fan791815297 2016-01-20
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
可以按长度从长的往短的计算,整除之后余数是否满足短长度的材料,不过要取最小的话,需要反复遍历吧
求代码解决
  • 打赏
  • 举报
回复
可以按长度从长的往短的计算,整除之后余数是否满足短长度的材料,不过要取最小的话,需要反复遍历吧
  • 打赏
  • 举报
回复
用动态规划算法 百度:二维下料 google:cutting stock
xdashewan 2016-01-20
  • 打赏
  • 举报
回复
5.5米剩下0.5米毫无用处,所以5.5米至少要50根材料,4米也不能从别的剩余材料中发觉,所以也要40材料,但4米切完后多余40根2米的,直接抵充30根2米和10根1.5米,所以50+40=90根6米的材料,是这样吗
fan791815297 2016-01-20
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
这跟直观的逻辑思维无关,这需要写出线性规划(其中的整数规划分支)的矩阵表达式并求解。我们通常使用 MathNet.Iridium 软件包来处理这类问题。这可以用到任何一个有关线性规划的应用中(例如材料分割、商店选址、人员排班、招聘决策、绩效打分,等等)。
能帮忙写个简单的例子么
  • 打赏
  • 举报
回复
这跟直观的逻辑思维无关,这需要写出线性规划(其中的整数规划分支)的矩阵表达式并求解。我们通常使用 MathNet.Iridium 软件包来处理这类问题。这可以用到任何一个有关线性规划的应用中(例如材料分割、商店选址、人员排班、招聘决策、绩效打分,等等)。
  • 打赏
  • 举报
回复
这种问题一般都没现成代码的,都是只有算法思路,而且要达到理论上的最小,和可接受的最小无论是实现还是复杂度都是完全不一样的 假设你一根就只能给一种用,多余的料全都废弃,那这是最简单的,但实际一般大家都不能接收这种做法,那么改成长的用完后,剩余的料是否可以给次长的用(不行的话再找次长的,依次类推下去),不考虑最优组合(这看起来又像打包问题了),这个也还能实现,因为不需要反复遍历取最优,如果加上打包,无能为力了,这要死多少脑细胞啊

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧