用python写一段拼手气发红包的代码,要求有个数,手气最佳,手气最差
时间: 2024-03-06 16:49:01 浏览: 57
好的,以下是一个简单的Python代码实现,用于模拟拼手气红包:
```python
import random
def send_red_packet(total_amount, num):
# 红包金额列表
amounts = []
# 循环生成红包数量
for i in range(num):
# 计算剩余的红包数量和金额
remain_num = num - i
remain_amount = total_amount - sum(amounts)
# 如果是最后一个红包,直接将剩余金额全部放入红包中
if remain_num == 1:
amounts.append(remain_amount)
else:
# 计算当前红包的最大和最小金额
min_amount = 0.01
max_amount = remain_amount / remain_num * 2
# 随机生成当前红包的金额
amount = round(random.uniform(min_amount, max_amount), 2)
amounts.append(amount)
# 随机打乱红包金额列表
random.shuffle(amounts)
# 输出红包金额列表
print("红包金额列表:", amounts)
# 输出手气最佳和手气最差的金额
print("手气最佳:", max(amounts))
print("手气最差:", min(amounts))
# 测试代码
send_red_packet(100, 10)
```
其中,`total_amount` 表示红包的总金额,`num` 表示红包的个数。代码中,首先生成一个空的红包金额列表 `amounts`,然后循环生成红包金额。在每次循环中,计算剩余的红包数量和金额,如果是最后一个红包,直接将剩余金额全部放入红包中;否则,计算当前红包的最大和最小金额,随机生成当前红包的金额,并将其添加到红包金额列表中。最后,随机打乱红包金额列表,输出红包金额列表和手气最佳、手气最差的金额。
阅读全文