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

查看:107
本文介绍了javascript - JQ如何把一个数拆成很多个随机数,总和为这个数本身?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.比如我现在请求到一个1000,要拆分成60个随机数,而这60个随机数相加刚刚好等于1000?
2.我要在五分钟内从0每隔5秒慢慢加60次到1000,这样可以实现吗?
3.六十次后再次请求一个数,比如是3000,那么,把3000再次拆分成60个随机数,从1000慢慢在五分钟内加到4000
求大神相助

解决方案

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));

这篇关于javascript - JQ如何把一个数拆成很多个随机数,总和为这个数本身?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆