对于我的程序,我正在努力帮助用户,并减少他或她的工作量。
有四个输入数字。他们也可以使用不确定数量的数字。
例如,它们的四个输入数字可以是{4,7,3,2},它们可以应用的数字是{4,9,23}
结果应该是:4(输入)应用于4,使集合看起来像:{0,7,3,2}然后7,2(输入)应用于9,使集合看起来像: {0,0,3,0}和{0,0,23}因为3或任何其他排列(包括3)与23不匹配,3仍然存在。
我该怎么做?
答案 0 :(得分:2)
您是说要从输入集中找到与另一组中的值相加的项? 如果是这样,那么我相信这是Subset Sum Problem的一个实例,这是Knapsack Problem的一个特例。
子集总和是NP完全的。如果这些集很大,那么你能做的最好就是近似解决方案。