输入总金额和红包数量,实现随机生成红包金额的功能。
思路:
1、先判断总金额是否足够,要保证每人至少0.01元。
2、使用random模块生成总和为红包金额,个数为红包个数的随机数,完成。
生成方法:
将总金额乘以100,换算到分,保证总金额为整数。
在1至总金额(不含)范围内取红包个数-1的随机整数,再加上0和总金额,生成随机数列表。
列表重新排序后,依次计算相邻两个数的差(所有的差之和就为总金额),即可得到每个人分到的以分为单位的金额,将金额除以100即可得到以元为单位的红包金额。
import random
def hongbao(total,num):
if num*0.01>total:
print('总金额过小!')
return None
else:
result=[]
lst=random.sample(range(1,int(total*100)),num-1)
lst.append(0)
lst.append(total*100)
lst.sort()
result=[(lst[i]-lst[i-1])/100 for i in range(1,len(lst))]
return result
print(hongbao(10,2))