function randomSplit(m,n,minv,maxv){
var res=[];
while(n>0){
l = Math.max(minv,m-(n-1)*maxv);
r = Math.min(maxv,m-(n-1)*minv);
num = Math.floor(Math.random() * (l - r)) + r;
n -= 1;
m -= num;
res.push(num);
}
console.log(res);
}
我搞出来一个,数m,分成n份,每份最小minv,最大maxv。生成的数,不是10的整数倍。
例如: randomSplit(45000,3,10000,20000)
[10512, 15316, 19172]
也不是很准确,10512超出了,怎么能改成,每次是10的整数倍。
例如: randomSplit(5000,3,1000,2000)
生成这种:[1550,1660,1790] 3份合计是5000,每个数都是10的倍数,不小于1000。
除了求和数M,最大最小数皆为10的倍数,随机函数也必须生成10的倍数方可,如下所示
测试