速看!!剖析红包原理,教你抢红包的正确姿势 | 京东云技术团队

前言

叮咚~,红包来了!相信大家一定在日常生活中抢过红包,但每次都和"手气最佳"无缘。因此,大家都很好奇后台是如何分配红包金额的,那么今天和大家聊一下红包背后的原理,以及如何抢红包才是正确姿势!

一、红包背后的数学模型

相信不少人学习过高数、线代、概率论这些"印象深刻"的课程。以微信为例,微信红包在发放时采用了随机分配的方式,但是对于红包的金额分配,微信却进行了精密的计算。微信红包的数学模型是基于正态分布的数学模型,在生成红包时通过随机数进行金额的分配,确保了红包金额的公平性。

图1(来源于网络)

二、抢红包的算法

有人要问了,这个随机分配是如何随机的?让我们来看下微信红包算法的原文:

首先,如果红包只有一个,本轮直接使用全部金额,确保红包发完。

然后,计算出本轮红包最少要领取多少,才能保证红包领完,即本轮下水位;本轮最多领取多少,才能保证每个人都领到,即本轮上水位。

主要方式如下:

计算本轮红包金额下水位:假设本轮领到最小值1分,那接下来每次都领到200元红包能领完,那下水位为1分;如果不能领完,那按接下来每次都领200元,剩下的本轮应全部领走,是本轮的下水位。

计算本轮红包上水位:假设本轮领200元,剩下的钱还足够接下来每轮领1分钱,那本轮上水位为200元;如果已经不够领,那按接下来每轮领1分,计算本轮的上水位。

为了使红包金额不要太悬殊,使用红包均值调整上水位。如果上水位金额大于两倍红包均值,那么使用两倍红包均值作为上水位。换句话说,每一轮抢到的红包金额,最高为两倍剩下红包的均值。

最后,获取随机数并用上水位取余,如果结果比下水位还小,则直接使用下水位,否则使用随机金额为本轮拆到金额。

以上,就是微信团队公布的红包算法规则:二倍均值法。

复制代码
例:发 100 块钱,总共 10 个红包,那么平均值是 10 块钱一个,那么发出来的红包的额度在 0.01元~20元之间波动。
当前面 3 个红包总共被领了 40 块钱时,剩下 60 块钱,总共 7 个红包,那么这 7 个红包的额度在:0.01~(60/7 * 2)=17.14之间。
注意:这里的算法是每被抢一个后,剩下的会再次执行上面的这样的算法;如果最后不够分,则保证剩余用户拿到最低额度0.01元即可。

三、抢红包的影响因素

首先,我们要明白抢红包的顺序,分为抢包和拆包两个步骤,一个决定红包是否还有余额,另一个决定你能抢多少钱;手速过慢就可能导致属于你的运气王就被别人抢走了!!!那我到底是"天选之子"还是"倒霉之人"呢?首先首先我们来分析一下人们认为有影响的原因,比如抢的顺序,红包的总金额大小,抢的人数等,那么这些因素是否会影响呢?

我们来看下抢红包的概率分布,以5人抢50元红包为例:

图2(来源于网络)

如图,可以看到第1个人永远不会超过20 ,后面的这个规律分布在慢慢平缓下来。最佳手气在各个人各个位置的概率是均等的吗?其实也不是。最后发现最佳手气的概率在5个人抢的时候是依次递减的。所以手快的人永远抢不到手气最佳。

****上述实验中是5个人,那么如果人数变多呢,会有什么影响?

图3(来源于网络)

可以看到,随着人数的增多,抢到手气最佳的概率往往是后抢的人。

四、如何抢红包

根据上述的实验分析,红包的总金额大小及参与人数决定着你能抢到的最大金额,抢的顺序则注定了你和运气王的缘分。因此抢红包的正确姿势应该是(划重点):

憋一会等别人把小红包都抢走了,你就是运气王!

tips:别等太久,不然也抢不到

作者:京东保险 吴凯

来源:京东云开发者社区 转载请注明来源

相关推荐
智者知已应修善业39 分钟前
【51单片机8位数码管同时倒计时从9999】2024-1-25
c++·经验分享·笔记·算法·51单片机
洛水水42 分钟前
【力扣100题】86.柱状图中最大的矩形
算法·leetcode·职场和发展
渡之1 小时前
GRiM-Net 深度解析 | 无人机 GNSS 拒止场景下两阶段跨视角视觉定位框架
深度学习·算法·动态规划·无人机
测试仪器廖生135902563851 小时前
罗德与施瓦茨 FSP13频谱分析仪FSP30
网络·人工智能·算法
happymaker06261 小时前
LeetCodeHot100——560.和为K的子数组
算法
dtq04241 小时前
C语言刷题数组5,6(求平均值,求最大值)
c语言·数据结构·算法
郭梧悠2 小时前
Hash算法入门Hash冲突解决方案
算法·哈希算法
洛水水2 小时前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
happymaker06263 小时前
LeetCodeHot100——155.最小栈
算法
洛水水3 小时前
【力扣100题】85.每日温度
算法·leetcode·职场和发展