现在需要下31个货物的订单,应该如何从以上供货单中抽取使其成本最低,例如上面的例子我们可以取
id(1) 20个
id(2) 11个
成本为20*1.90+11*1.98=59.45最便宜?
成本为20*1.90+11*1.98=59.78最便宜?
id(1) 20个
id(0) 10个
id(2) 1个
成本 20*1.90+10*1.95 + 1.98 = 59.48 才是最便宜
id(1) 20个
id(2) 11个
成本为20*1.90+11*1.98=59.45最便宜?
成本为20*1.90+11*1.98=59.78最便宜?
id(1) 20个
id(0) 10个
id(2) 1个
成本 20*1.90+10*1.95 + 1.98 = 59.48 才是最便宜
解决方案 »
- 引入标签库 这个咋么回事
- SOS ~~ 如何实现网站登录的功能
- C调用JAVA出错,求指点
- 高分求教~~关于hibernate多对多的问题,请教下
- e社会速度问题已经解决!
- 如何安装JBOSS EJB3.0?不是有一个EJB3.0的JAR包吗?怎么装呀
- 为什么说单态Bean是线程安全的呢?
- 求最新能用的eclipse,jboss,lomboz版本及下载地址.最好是直接的软件下载地址
- java消息服务(jms)中的消息具体指什么东西呢?可否理解为手机短信?
- 配置SpringMVC报错Could not initialize class org.hibernate.cfg.AnnotationConfiguratio
- 问两个Struts html标签的小问题
- 如何用dom4j读出类似以下文件中的,<Good id='23001' name='书' >中的id值,,和name 值啊?
说得没错,但难就难在如何找出所有可能性,我想了很多办法,但变成实现有一定难度...
学习ing
帮您顶
------------------
0 1-10 1.95
1 11-20 1.90
2 11-20 1.98
3 1-10 3.0
4 1-10 1.90
5 11-20 2.90
-------------------
比如有个订单是30件货物
处理订单:
A:由一个供应商提供:
只有一种可能,10×3(由上述例子看出只有3个供应商(5个里有3个提供10件货物)做比较,找出最便宜的)
B:由二个供应商提供:
只有一种可能:10+20(总共有3×3=9种情况)
C:由三个供应商提供:
只有一种可能:10+10+10(总共有一种情况)
D:由四个供应商提供:
没有可能
E:由五个供应商提供:
没有可能
.
.
.
.个人认为:
主要在于分解订单(分成几个供应商供货),确定由1-n(n>=2)个供应商是个关键。其中n是关键中的关键。
就题论题,比如上述例子。当订单是30件货物时,30÷10(所有供应商中提供最少货物的数量)=3
在这里就可以判断在大类上的情况。由1,2,3个供应商提供货物的3大类情况,即粗略判断出n=3。然后再分别计算3大类中的每个有多少种情况。希望对楼主有帮助
5(id0)+11(id1)+5(id3)+11(id5)=30(虽然这样组合不是最便宜,但换组数据便有可能,所以必须考虑所有情况,再去找最优...)
....排列组合问题...