# -*- coding: utf-8 -*- # @Time : 18-10-9 下午4:37 # @Author : Felix Wang import random def give_red_packets(all_money, num): """ :param all_money: 红包总金额 :param num: 红包个数 :return: 返回每个红包的金额 """ total = all_money while True: all_money = total moneys = [] all_money = all_money * 100 avg = all_money // num for i in range(num - 1): money = int(avg * random.randint(1, 200) / 100) moneys.append(int(money)) all_money = all_money - int(money) moneys.append(all_money) if 0 < all_money < avg * 2: break return [m / 100 for m in moneys] # 测试,随机发两百次,随机发的人数 for i in range(200): num = random.randint(10, 200) s = give_red_packets(100, num) print(len(s), num) print(s) print(sum(s))