标题:求图片中的算法代码!在excel中运行!
只看楼主
zhaoyin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-1-19
结帖率:60%
已结贴  问题点数:20 回复次数:9 
求图片中的算法代码!在excel中运行!
搜索更多相关主题的帖子: 代码 图片 excel 运行 算法 
2022-05-30 14:47
约定的童话
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:47
帖 子:190
专家分:1061
注 册:2021-8-1
得分:4 
VBA都不一定好使,计算量巨大,有多线程的一维钢筋下料软件,百度上找找看
2022-05-30 15:06
daitq7018
Rank: 1
等 级:新手上路
帖 子:11
专家分:4
注 册:2017-4-4
得分:4 
网上有给定的钱买不同的商品组合的vba例子,搜索一下可以得到解答
2022-05-30 16:54
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:4 
用 EXCEL 表格想了下,变量太多了,表格不好做,还是写程序吧!!
程序,按每种原料都是去截一下,我觉得应该是计算剩余料的来计算吧,剩的越少越好。

我想到的想法:
先按每种最大截多少,找到剩料最少的,然后最后的需要零头,再看看哪种剩的最少。
如,第1个 1350,一、用 3000 截,每根可以截2根,多300*2,差1根
                二、用4500截,每根可以截3根,多 450,差2根
                三、用6000截,每根可以截4根,多 600,差1根
然后,一、1根,用3000截,多1650,前面退一根,3根,用4500截,多450 。得到二种方案
          方案一:3000*2+3000*1,多600+1650 , 方案二:3000*1+4500*1,多300+450
      二、2根,用3000截,多300,退一根,5根,无法直接截。得到一种方案
          方案三:4500*1+3000*1,多450+300
      三、1根,用3000截,多1650,退一根,5根,无法直接截。得到一种方案
          方案四:6000*1+3000*1,多600+1650
然后比较剩余料,得到方案二和方案三,剩料最少。OK就它们了。
然后这个方案,根据原料长度排序,得到的结果是一样的,去重,就剩方案二了。

.....................

  

授人于鱼,不如授人于渔
早已停用QQ了
2022-05-30 21:14
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:4 
这应该用贪心算法就可以吧,最优算法当然是动态规划。常规练习,不难的。

能编个毛线衣吗?
2022-05-30 21:26
zhaoyin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-1-19
得分:0 
回复 2楼 约定的童话
问题是这个是配合表格其他功能用的,这个是铝材,跟钢筋不一样,要最小浪费的方案,可以做固定单一材料长度!
2022-05-30 22:59
zhaoyin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-1-19
得分:0 
回复 3楼 daitq7018
那个是可以累加,这个是不能累加的,要分条分类!
2022-05-30 23:02
zhaoyin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-1-19
得分:0 
回复 4楼 风吹过b
那跨种类的要怎么搞,比如全部用6米的开,开了两条1.4米的,又开了一条2米的,还可以开一条1米的,这样的组合计算又要怎么算?
2022-05-30 23:05
zhaoyin
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2022-1-19
得分:0 
回复 5楼 wmf2014
你说的太深奥,我菜鸟不懂,我感觉你说的有点像python
2022-05-30 23:10
hmj0745
Rank: 2
等 级:论坛游民
帖 子:52
专家分:83
注 册:2021-11-6
得分:4 
回复 楼主 zhaoyin
    你这个题目,用代码的话也可以实现,要以最优化组合代码写起来也是比较麻烦的。
目测用笔在纸上画一下组合一下更简单(用量庞大的话还是要计算出最优化的方案,因为一套料省一根就能省很多了)
估算用6000的料比较省,
思路就是最大用料需求算起,余料是最相近的下级规格,优先取余数最小。(4500和3000的料不能满足这个条件比较费料)

一,5800  的需求 ,用6000料,8根,(余料长度200不可用)
二. 3800 的需求, 用6000料,4 根 ,(余料长度刚好产生 2200 4根)
三. 3420  的需求,用6000料,7根,(余料长度2580, 匹配2540 规格的6根,多1根 锯成 2200)
四,3200 的需求,用6000料,9根,(余料长度2800 共9根。锯开2根,做(1350+ 1250 )两款料, 7根锯 2200规格的
 rem  2580 规格已够
rem   1250规格已够

至此: 2200差4根,1700 差 4 根  ,1350 差 3 根。如果从这里选  用4500原料,尾料会省一些。

五    用4500料  5 根, 取4根锯2200 和 1700 规格, 余料长 600 共4根
                       取1 根锯1350 的 3份,余料长  450  共1 根

用料:6000的 28根, 4500的 5 根, 这是目测估算的组合。 哪位大侠能否码测算一下,我也好验证一下,这个估算是否比较接近。

不去做永远没有结果!
2022-06-01 01:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509207-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029210 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved