请用Python语言完成输入红包金额和数量,随机分配并输出每个红包金额
时间: 2024-05-12 19:18:53 浏览: 269
PHP实现红包金额随机分配算法
以下是Python代码实现:
```python
import random
total_money = float(input("请输入红包金额:"))
num = int(input("请输入红包数量:"))
if num == 1:
print("每个红包金额为:", total_money)
else:
remain_money = total_money
remain_num = num
for i in range(num-1):
max_money = remain_money / remain_num * 2
money = random.uniform(0.01, max_money)
remain_money -= money
remain_num -= 1
print("第{}个红包金额为:{:.2f}".format(i+1, money))
print("第{}个红包金额为:{:.2f}".format(num, remain_money))
```
运行结果示例:
```
请输入红包金额:100
请输入红包数量:5
第1个红包金额为:31.91
第2个红包金额为:20.82
第3个红包金额为:10.01
第4个红包金额为:18.44
第5个红包金额为:18.82
```
解释一下代码逻辑:
1. 首先输入红包金额和数量。
2. 如果只有一个红包,直接输出总金额即可。
3. 否则,用两倍均值法随机生成前n-1个红包的金额,保证每个红包的金额都不会超过剩余金额的一半。最后一个红包的金额直接等于剩余金额。
4. 输出每个红包的金额。
阅读全文