将题目转化为,求数组的一个子集,使得这个子集中的元素的和尽可能接近sum/n,其中sum为数组中所有元素的和。
这样就可以使用动态规划的方式来求得其中的一个子集,求总容量为sum/n,且值为vi,容量为vi的背包,怎么组合能得到最大值
var arr = [2,4,6,7,8,5];
var keys = [],//存元素在数组中的位置
maxValue = [];//存储网格中的最大值
function bb() {
//计算出所有数据的总和
var sum = arr.reduce(function (start, ele) {
return start + ele;
}, 0);
var v = sum / 4;//分几组数组
//生成以所有元素为行,值递增为列的网格,以值最大为规划条件,值越大,
//越接近于平均值
for (var i = 0; i < arr.length; i++) {
var row = [], key = [];
for (var j = 0; j