确定数组中哪些数等于特定的总和

5
我将这个问题作为一个普通的数学问题提出。我会打上Visual Basic的标签,因为解决方案可能会在电子表格中实现。
我有一份运输清单,其中列出了每个运输中小部件的数量。每个运输都被装载在卡车#1或卡车#2上。鉴于每辆卡车上的小部件总数,我如何确定每个运输所在的卡车?
例如,以下是每辆卡车上的小部件装载情况:
Truck #1  83,240 
Truck #2  63,460 
         -------
         146,700

这里是详细的货运清单。

SHIPMENT ID  QUANTITY 
90006           340 
93806         2,460 
93906        22,980 
92506         5,960 
96306         3,580 
96406         3,320 
96906         2,680 
97306         1,160 
99206         9,780 
95005        15,300 
95006         2,980 
96008        22,320 
95606        28,580 
90206         5,020 
90306         3,160 
94006         1,140 
94406         4,640 
94606         7,900 
98606         3,400 
            -------
            146,700 

“Truck #1和Truck #2装载了哪些货物?”

3
我的爱好:用XKCD漫画回答Stack Overflow的问题...http://xkcd.com/287/ - jtolle
你可能会发现我在需要Excel公式中使用Excel的求解器来回答类似问题的方法很有用。特别是它可以处理最接近的解决方案,如果不存在精确的解决方案。 - brettdj
1个回答

5

这是子集和问题的一个变种。更多信息可以在Stack Exchange的数学网站上找到。这个问题并不简单。维基百科页面描述了一种算法。在你的情况下,可能适合采用穷举搜索。


啊!老的子集和问题。没听说过。 :) 我可以从你提供的链接中看出它并不是简单的问题。我会研究一下的。 - user191688
1
请注意,对于某些集合,可能不存在唯一解决方案,这对于此应用程序可能会成为一个重要问题。 - Zéychin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接