为了账号安全,请及时绑定邮箱和手机立即绑定

JQ如何把一个数拆成很多个随机数,总和为这个数本身?

JQ如何把一个数拆成很多个随机数,总和为这个数本身?

呼啦一阵风 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));

https://img1.sycdn.imooc.com//5bd6ba7f0001e01707580094.jpg

查看完整回答
反对 回复 2018-10-29
  • 1 回答
  • 0 关注
  • 842 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信