为了账号安全,请及时绑定邮箱和手机立即绑定

请教一个python的凑整箱问题

请教一个python的凑整箱问题

翻过高山走不出你 2019-01-04 22:10:13
业务如下:有仓库A、B、C每个仓库中有数箱矿泉水,箱子中的矿泉水数量不一,如何将不满的数个箱子凑成满的?例如:满箱为24瓶A库中有A-1 = 21瓶,A-2 = 15瓶,A-3 = 13瓶B库中有B-1 = 4瓶,B-2 = 8瓶, B-3 = 23瓶C库中有C-1 = 11按照人类的逻辑应该是把A-3搬到A-1和A-2中间,然后从 A-3中拿出3瓶给A-1 再拿出9瓶给A-2 这样正好两整箱零1个然后再把剩余的1瓶拿给B-3凑成一整箱再将B-1和B-2组成半箱拿给C-1凑成23瓶最终的要求就是出一张表告诉库管员从哪个箱子里拿多少瓶放到哪个箱子里,请问这种业务应该怎么实现?试了下循环模拟计算,非常耗资源,像这种问题是否有更高效的算法去解决呢?
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

这样其实会有一些条件不是很明确.不知道你怎么算的.
下边是我的思路,如果不考虑不同仓库,假设了任意两个箱子之间流通成本是一样的. 
从当前最少的那个箱子里取水放到最多的箱子里凑成整箱.这样保证移动了最少的瓶数
如果考虑不同仓库,就像你说的,需要先把每个仓库能凑整的凑整,这样N个仓库就会剩下0~N个不整的箱子,将他们无差别(也可能有差别,因为仓库间距离不同,同仓库就不考虑各个箱子间的距离差别了)操作一次,

查看完整回答
反对 回复 2019-01-04
  • 1 回答
  • 0 关注
  • 811 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信