如题比如将一个100元的红包发给10个人,每个人最多领取20元,最少可以领取1元,或者单机游戏中随机属性怪物数值等。
原理随机一个数值,同时保证剩下的值分配不会过少或者过多,否则重新随机直到分配完毕

this.randomTotal(100,10,1,20);
/**
* 随机上下限分配属性
* @param tol 总数
* @param fen 份数
* @param min 下限
* @param max 上限
* */
public randomTotal(tol,fen,min,max){
var list = [];
for(var i=fen-1;i>0;i--){
var rdm = Math.round(hw.Tools.getRandom(min,max));
while(tol-rdm>max*i||tol-rdm<min*i){
rdm = Math.round(hw.Tools.getRandom(min,max));
}
list.push(rdm);
tol = tol-rdm;
}
list.push(tol);
return list;
}