完成微信随机红包的分配,用户可以输入红包总金额,分配人数 ,随机分配可以使用random.sample函数,完成。最后按顺序给出每个人的红包大小,大小精确到小数点后两位请给出测试用例
时间: 2024-10-09 22:13:37 浏览: 48
为了实现微信随机红包的分配功能,你可以使用Python编写一个小程序。首先,导入所需的库`random`,然后定义一个函数来生成随机红包列表。下面是一个基本的实现:
```python
import random
def generate_random_redpacks(total_amount, num_people):
# 确保总金额是正数,并且分配的人数大于0
if total_amount <= 0 or num_people <= 0:
return "错误:请输入有效的总金额和人数"
# 将总金额转换为分(因为random.sample需要整数作为索引)
total_coins = int(total_amount * 100)
# 创建一个包含总金额份数的列表
coins_list = list(range(1, total_coins + 1))
# 使用random.sample函数随机选择红包金额
redpacks = [random.sample(coins_list, 1)[0] for _ in range(num_people)]
# 计算并返回每位用户的红包金额(保留两位小数)
formatted_redpacks = [{"user": f"用户{i+1}", "amount": round(amount / 100, 2)} for i, amount in enumerate(redpacks)]
return formatted_redpacks
# 测试用例:
# 测试1: 分配50元给3人
test_case1 = generate_random_redpacks(50, 3)
print("测试1结果:", test_case1)
# 测试2: 分配100元给5人
test_case2 = generate_random_redpacks(100, 5)
print("测试2结果:", test_case2)
# 测试3: 非法参数,例如零金额或负数
test_case3 = generate_random_redpacks(0, 1)
print("测试3结果:", test_case3)
```
在这个程序中,我们创建了一个名为`generate_random_redpacks`的函数,它接受两个参数:总金额和分配人数。然后通过一系列计算,包括将金额转换为分、生成所有可能的红包金额组合以及按顺序返回每个用户的信息,实现了红包的随机分配。
运行这个程序,你会看到每个测试用例的结果,展示出随机分配的红包金额及其对应用户。
阅读全文