用python,自定义红包钱数,自定义接收红包的人数。随机生成每一笔,然后依次的在继续,最后剩下的分给最后一个人。
时间: 2023-12-31 21:03:20 浏览: 26
可以按照以下步骤实现:
1. 定义红包总金额和接收红包的人数。
2. 根据接收红包的人数,计算出每个人最少可以分得多少钱,这个值为min_money。
3. 分配红包,可以采用随机分配的方式,每次随机生成一个0到总金额之间的数,然后判断这个数是否大于等于min_money,如果大于等于,则将这个数分配给当前接收红包的人,否则重新生成一个随机数。
4. 循环分配红包,直到所有的人都接收到了红包为止。
5. 如果最后剩下一些钱没有被分配出去,那么将这些钱全部分配给最后一个接收红包的人。
下面是一个示例代码:
```python
import random
def send_red_packet(total_money, num):
# 计算每个人最少可以分得多少钱
min_money = total_money // num
# 初始化每个人的红包金额为0
red_packets = [0] * num
# 分配红包
for i in range(num):
while True:
# 随机生成一个0到总金额之间的数
money = random.randint(0, total_money)
# 判断这个数是否大于等于min_money
if money >= min_money:
red_packets[i] = money
total_money -= money
break
# 如果最后还有一些钱没有被分配出去,那么全部分配给最后一个人
red_packets[-1] += total_money
return red_packets
# 测试
red_packets = send_red_packet(100, 5)
print(red_packets)
```
在这个示例中,我们将100元钱分给5个人,程序会随机生成每个人分配的红包金额。运行程序,输出结果如下:
```
[20, 17, 16, 29, 18]
```
这个结果表示,第一个人分得20元,第二个人分得17元,第三个人分得16元,第四个人分得29元,最后一个人分得18元。总和为100元,每个人至少分得了16元。