如何从一组数据中选出若干求和?是背包问题?还是属于什么数学问题?求解这个的问题的算法程序

比如:从8个数中选4个数求和:[113,154,234,523,211,342,532,321],就有C(8,4)=8*7*6*5/4*3*2*1=70种结果(只是组合不是排列),比如,1-2-3-4 一个组合;1-2-3-5 一个组合......总共有70种组合的数,数不大可以用枚举法一个个算,但是我要做的从40个数数选出18个数求和,穷举法太多了,不现实,求优化算法的指导。
希望是MATLAB上实现

第1个回答  2011-07-27
你是要求全部和还是满足某种条件的和?前者的话只有一个一个算。追问

只是要求求出18个和是众组合中较小的(假如40选18),不用满足什么条件。

追答

“较小的”还不是条件?直接排序取小的相加不就完了

追问

我的意思是:比如【11,12,14,17,18,19】这个数组中选出3个数求和。如11+12+13=36;11+12+14=37;11+12+17=40;11+12+18=41;11+12+19=42。12+14+17=43.;12+14+18=44;..........总共20个结果,然后从20个结果中找出3个结果是最小、次小和较小的数。现在我的40个选18的和依次较小的,枚举法不可能了,太多了,求算法指导

追答

不还是找最小数吗?比如你给的例子,只需要排个序(你给的数组其实已经排了),然后取最小的三个数相加即可(最小和11+12+14=37,话说你给的数组里没有13你是怎么加出36来的)。要次小把刚才的三个数里最大的换成排序后数组里下一个元素(11+12+17=40,无论如果把中间或者最小的数替换掉得到的和肯定更大,所以只能换最大);第三小的和肯定是把三个里面最大的数继续替换为下一个(11+12+18=41,同前面分析)或者第三个数还原并把第二个数替换为下一个(如11+17 + 14 = 42)中的一个。
40选18也是一样的道理,取最小的18个,后面各种分析替换……这样应该可以稍微减少要考虑的数量。

第2个回答  2011-07-27
这是一个关于最高效益的线性规划,可以使用图论方法解决。
第3个回答  2011-07-27
全排列算法追问

愿闻其详

追答

全排列所有可能性,放个js,一到你要的数字就停

如何从一组数据中选出若干求和?是背包问题?还是属于什么数学问题?求解...
你是要求全部和还是满足某种条件的和?前者的话只有一个一个算。

excel如何自动从一堆数据中选取数个数字,使他们相加等于特定的一...
所谓背包问题,是个形象的比喻:某人有个背包和已知数量的物品,背包只能装下限定的重量,每个物品重量不同。如何组合物品才能刚好装到背包指定的重量。

如何从一堆数字中任意选几个数求和得到一个固定值
这是背包问题,一般采用穷举法解决。对于超递增序列才有有效的算法解决。

计算机科学中的「背包问题(knapsackproblem)」是什么,它
给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,如何选择最合适的物品放置在背包中才能使物品的价格最高。这被称为背包问题(Knapsack problem)。解决这类组合问题的一种方法是通过递归来实现。但是,如果能找出重叠的子问题,动态规划可以优化解法。对于物品x,可以选择或不选择。这些操...

策略算法工程师之路-背包问题及应用
4. **二维背包问题**:引入了重量和体积两个维度的限制,目标是同时满足重量和体积的约束条件下,最大化价值。通过扩展矩阵来求解。5. **分组背包问题**:物品分为若干组,每组中的物品只能选择一件,目标是满足费用不超过背包容量的条件下,价值最大化。通过0-1背包问题的思路解决。6. **多维多...

01背包问题是什么意思
01背包问题是什么意思?首先,背包问题是一类经典的组合优化问题,即在物品有限的情况下,如何选择一些物品放入背包中,使得这些物品的价值之和最大或者总重量不超过背包容量。而01背包问题则是指每个物品只能选择放或者不放,即物品的取舍是二元的。其次,01背包问题常用于动态规划的实现。在实际应用中,...

excel 在一组数中筛选出和等于所设定的一个特定值的几个数值的办法
从数学角度就可以知道,这个基本上是不可能得到所有解的,从200个数中取出20个,有多少种排列组合?计算机进行这么多次循环需要多长时间?现在一般的个人电脑,进行单线程计算,1秒大概能进行1亿次左右的计算或循环,上下大概浮动1至2个数量级,可是你要进行的循环次数实在太多,不可能全部完成的,实际上就...

01背包问题变种:从给定的N个正数中选取若干个数之和最接近M的JAVA写法...
(C-MA(C,12))\/MA(C,12)*100;BIAS2 := (C-MA(C,26))\/MA(C,26)*100;BIAS3 := (C-MA(C,48))\/MA(C,48)*100;HXL:=V\/CAPITAL*100;D1:=INDEXC;D2:=MA(D1,56);DR2:=D1\/D2<0.94;E1:=(C-HHV(C,12))\/HHV(C,12)*10;E2:=(C-REF(C,26))\/REF(C,26)*10;...

0-1背包问题的多种解法代码(动态规划、贪心法、回溯法、分支限界法...
\/* 问题P(i,j)是背包容量为j、可选物品为i,i+1,...,n时的子问题 \/* 设m(i,j)是子问题P(i,j)的最优值,即最大总价值。则根据最优 \/* 子结构性质,可以建立m(i,j)的递归式: \/* a. 递归初始 m(n,j) \/* \/\/背包容量为j、可选物品只有n,若背包容量j大于物品n的 \/* \/\/重量,则直接...

求背包问题的pascal源代码
01背包问题是最基本的背包问题,它包含了背包问题中设计状态、方程的最基本思想,另外,别的类型的背包问题往往也可以转换成01背包问题求解。故一定要仔细体会上面基本思路的得出方法,状态转移方程的意义,以及最后怎样优化的空间复杂度。P02: 完全背包问题题目有N种物品和一个容量为V的背包,每种物品都有无限件可用。第i...

相似回答