python发红包模拟random
时间: 2023-06-18 07:07:02 浏览: 62
以下一个简单的 Python 红包模拟代码,使用了 random 库:
```python
import random
def generate_red_packets(total_amount, num_packets):
packets = []
remain_amount = total_amount
remain_num = num_packets
for i in range(num_packets):
if remain_num == 1:
packets.append(remain_amount)
break
min_amount = 0.01
max_amount = remain_amount / remain_num * 2
amount = round(random.uniform(min_amount, max_amount), 2)
packets.append(amount)
remain_amount -= amount
remain_num -= 1
return packets
# 测试
total_amount = 100
num_packets = 10
packets = generate_red_packets(total_amount, num_packets)
print(packets)
print(sum(packets))
```
这个函数接受两个参数:红包总金额和红包数量。它会返回一个长度为红包数量的列表,其中每个元素表示一个红包的金额。该函数使用了一个循环来生成每个红包的金额,每次循环中会计算出一个最小金额和最大金额,然后使用 `random.uniform()` 来生成一个随机数。最后,将生成的金额加入到红包列表中,并更新剩余金额和剩余红包数量。
请注意,这个红包生成算法并不是最优的,因为它可能会生成一些非常小的红包。如果您想要更好地模拟实际的红包发放情况,可以考虑使用更复杂的算法。