美文网首页python自学数据结构和算法分析
类似微信随机红包算法及代码

类似微信随机红包算法及代码

作者: 六天天天向上 | 来源:发表于2019-02-13 12:09 被阅读4次

接了老板一个需求,做一个类似微信随机红包的功能,具体需求如下:

  • 用户将自己的积分包入红包中,填写积分总数和红包个数,要求都为整数;
  • 将红包发送到微信群中,用户抢红包,抢到的红包数量随机,精确到小数点2位;

整个需求相对来说比较简单,红包填写表单+微信分享+队列抢红包+红包随机算法,这篇文章主要介绍一下红包随机算法。
以前光只顾抢微信红包了,没有仔细思考过微信随机红包发放算法,这次接到这个需求后,对微信红包仔细研究了一番,发现以下规律:

  1. 红包金额从小到大呈现正态分布。
    小红包和大红包占少数,大部分人抢到的都是不大不小的红包。
  2. 最大红包和最小红包出现的位置随机。

了解了微信随机红包的呈现规律后,自己的红包算法就比较好完成了,核心使用random随机函数。
Python代码如下:

import random

"""
amount 积分总数
num 红包个数
"""
def randomRedPackets(amount, num):
    minMoney = 100 #一个红包中最小的积分数
    totleMoney = amount * 100 #精确2位小数,统一扩大100倍
    safeMoney = 0 #每个红包的安全上线
    resdata = []
    for x in range(1,num+1):
        tmpMul = 1 if((num - x) // 2 == 0) else (num - x) // 2      
        safeMoney = (totleMoney - (num - x) * minMoney) // tmpMul #随机安全上限
        if x != num:
            money = random.randint(minMoney,safeMoney)
            totleMoney -= money
        else:
            money = totleMoney
        resdata.append(money/100)
    print(resdata)

每个红包500积分,分8个包,运行100次,统计结果如下图所示:


统计散点图

相关文章

  • 类似微信随机红包算法及代码

    接了老板一个需求,做一个类似微信随机红包的功能,具体需求如下: 用户将自己的积分包入红包中,填写积分总数和红包个数...

  • 微信红包随机算法初探

    本文简书备份地址:微信红包随机算法初探 最近看了一篇文章,讲微信红包随机算法的。感觉很不错,所以自己实现了下,并进...

  • 正态分布

    最近公司产品上线一个类似于微信抢红包功能,需要实现红包金额的随机分配算法。 基本约束: 发放红包时,每个人所能得到...

  • 我也来谈谈类似微信红包算法实现

    最近在做一个类似微信红包的 拼手气红包的算法实现。 需求: 客户抛出一个想法 :他想在他的APP中加入类似微信红包...

  • 基于微信随机红包算法

    微信随机红包算法, 前提为知道红包的数量, 红包总金额, (红包最小金额, 0.01)为防止浮点数计算出现问题,此...

  • c++代码模拟微信抢红包算法,没人抢得过你!

    算法说明: 微信抢红包基本功能为:提示输入红包总金额和红包份数,保证每个红包的金额随机且不为0,每个红包的金额差距...

  • 最全解密微信红包随机算法(含代码实现)

    1、引言 这个系列文章已经整理了10篇,但都没有涉及到具体的红包算法实现,主要有以下两方面原因。 一方面是各社交/...

  • 红包随机算法Java实现

    需求:红包总金额随机后每份金额:最大值200, 最小值0.01;最大份数100;工具:idea参考:微信红包算法以...

  • 微信红包算法 - OC

    知乎-微信红包算法 一个简单的分配算法:随机分配n次把每次分配的部分减去,在进行随机分配分配过程中,考虑好,分配为...

  • PHP 仿微信红包金额随机

    博主寒冰最近闲来无事。就想研究一下微信红包的金额随机算法。早在微信红包刚出来的时候就研究过。始终不得要领。后来,通...

网友评论

    本文标题:类似微信随机红包算法及代码

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