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分钱,且总金额分配正确。