得到最小公共等和两组数的组合

时间:2012-10-18 17:03:10

标签: math combinatorics

我目前正在使用C#创建一个程序,该程序会查找两组数字中可能的最小数量,您可以根据需要重复这些数字。

例如,我有两组{ 10, 13, 18 }{ 12, 16, 22 }。我可以得到的最低金额是 28 (10 + 18)(12 + 16)

另一个例子是{5, 7, 9}{1, 2, 3}。最低可能总和为 5 (5)(1+1+1+1+1)(1+2+2)(2+3),依此类推。

关于我可以从哪里开始的任何建议?我实际上每套使用6个数字,数字是数百/千万。

1 个答案:

答案 0 :(得分:0)

保持两组,从输入集初始化,并按增加的数字排序(例如使用基于树的集合结构)。现在比较两组中的第一个(即最小)元素。从集合中删除的较小的一个,将相应输入集中的所有元素添加到该值,然后插入结果。当两个集合具有相同的最小元素时,您就完成了,并且该元素是您最不常见的相等总和。