呼啦一陣風
2018-09-10 13:45:29
1.比如我現在請求到一個1000,要拆分成60個隨機數,而這60個隨機數相加剛剛好等于1000?2.我要在五分鐘內從0每隔5秒慢慢加60次到1000,這樣可以實現嗎?3.六十次后再次請求一個數,比如是3000,那么,把3000再次拆分成60個隨機數,從1000慢慢在五分鐘內加到4000求大神相助
1 回答

哆啦的時光機
TA貢獻1779條經驗 獲得超6個贊
function randomDivide(total, nums) {
rest = total;
const result = Array.apply(null, { length: nums })
.map((n, i) => nums - i)
.map(n => {
const v = 1 + Math.floor(Math.random() * (rest / n * 2 - 1));
rest -= v;
return v;
});
result[nums - 1] += rest;
return result;
}
// testing
const result = randomDivide(1000, 60);
console.log(result.join(","));
console.log(result.length);
console.log(result.reduce((acc, n) => acc + n));
添加回答
舉報
0/150
提交
取消