缺货原因分配到收货单的算法

一批货有多个收货单,然后发现缺货了。而且有多种缺货原因。

缺的是哪个单的货?不太重要,但是尽量多的收货单只要一个原因。所以怎么分配?

比如一批货缺70个,首先是按照升序排列:
三个收货单,p1缺5、p2缺20、p3缺45
这批货给了三个缺货原因,r1包含12、r2包含23、r3包含35

先满足较小的收货单,这样可以尽量多的满足需要(贪婪),再把【能满足整单】的【数量最小】的原因分配给他,这样数量大的原因可以满足大量的收货单。

【能满足整单】的【数量最小】的原因是r1,分配5个给p1
p1分配后:
p2缺20、p3缺45
r1包含7、r2包含23、r3包含35

【能满足整单】的【数量最小】的原因是r2,分配20个给p2
p2分配后:
p3缺45
r1包含7、r2包含3、r3包含35

【能满足整单】的【数量最小】的原因不存在,依次分配给p3
p3缺38
r2包含3、r3包含35
p3缺35
r3包含35

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值