微信红包

function distributeRedEnvelope(totalAmount, numRecipients) {
    // 将总金额转换为分,方便计算
    let remainingAmount = totalAmount * 100;
    // 创建一个数组用于存储每个红包的金额
    const amounts = [];
    for (let i = 0; i < numRecipients; i++) {
        // 如果是最后一个红包,直接分配剩余金额
        if (i === numRecipients - 1) {
            amounts.push(remainingAmount / 100);
        } else {
            // 随机生成一个在一定范围内的金额
            const minAmount = 1; // 最小金额为 1 分
            // 剩余红包的平均金额作为当前红包的最大金额上限
            const maxAmount = remainingAmount / (numRecipients - i);
            // 在最小金额和最大金额范围内随机生成一个金额
            const randomAmount = Math.floor(Math.random() * (maxAmount - minAmount)) + minAmount;
            amounts.push(randomAmount / 100);
            // 更新剩余金额
            remainingAmount -= randomAmount;
        }
    }
    return amounts;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容