Python小算法 -- 发红包功能

输入总金额和红包数量,实现随机生成红包金额的功能。

思路:

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))

你可能感兴趣的:(Python,python)