美文网首页
Python实现红包

Python实现红包

作者: 懒人程序猿 | 来源:发表于2021-04-04 08:38 被阅读0次

    封装一个红包函数

    def get_random_money(money=None, num=None):
        r""" 获取红包
        :param money: 红包总金额,单位(分)
        :param num: 红包个数
        :return: {}
        """
        data = []
        if money < num:
            return {"code": 0, "message": "单个红包小于1分!", "data": data}
        # 均分
        rem = money % num
        mean = (money - rem) / num
        for i in range(num):
            data.append(int(mean))
        data[0] = int(data[0] + rem)
        # 随机分配金额
        for i in range(num):
            r1 = random.randrange(0, num)
            r2 = random.randrange(0, num)
            per = random.random()
            mon = data[r1] - int(math.floor(data[r1] * per))
            if data[r1] - mon > 0:
                data[r1] = int(data[r1] - mon)
                data[r2] = int(data[r2] + mon)
            pass
        return {"code": 1, "message": "成功!",  "data": data}
    

    发一个200块的红包给10个人

    if __name__ == '__main__':
        money = demo.get_random_money(20000, 10)
        print(money)
    

    结果如下

    image.png

    实现具体步骤

    1、每个红包最少金额为1分
    2、均分,将总金额平均分配给每个红包。这里需要取模,将均分后剩余部分分配给第一个红包
    3、随机从某个红包中减去随机金额,将减去的金额随机分配给另外一个红包

    相关文章

      网友评论

          本文标题:Python实现红包

          本文链接:https://www.haomeiwen.com/subject/xagkkltx.html