JS实现红包分配(每个人至少1分钱)

要实现红包分配,保证每个人至少分到1分钱,可以使用以下算法:

下面是一个示例的JavaScript代码实现:

function allocateRedPacket(totalAmount, totalPeople) {
    if(totalAmount < totalPeople * 0.01 || totalPeople == 0){
      return []
    }
    const amounts = [];

    totalAmount = totalAmount - totalPeople * 0.01

    let money = 0
    for(let i = 0; i < totalPeople - 1; i++) {
      money = Math.floor(Math.random()*(totalAmount*100+1)) / 100
      amounts.push(money)
      totalAmount = totalAmount - money
    }

    amounts.push(totalAmount)

    const result = []

    for(let i = 0; i < totalPeople; i++) {
      const add = amounts[i] + 0.01
      result.push(add)
    }
    return result;
  }
  
  const totalAmount = 0.05;  // 总金额(单位:元)
  const totalPeople = 10;  // 总人数
  const result = allocateRedPacket(totalAmount, totalPeople);
  console.log(result)

请注意,这种分配算法是基于随机生成金额来实现的,所以每次运行的结果都可能不同。但是,可以保证每个人至少分到1分钱,且总金额分配正确。

posted @ 2023-10-09 21:10  张吱吱  阅读(112)  评论(1编辑  收藏  举报