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

前言

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

一、红包背后的数学模型

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

图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:别等太久,不然也抢不到

作者:京东保险 吴凯

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

相关推荐
梁下轻语的秋缘1 小时前
每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)
c++·算法·蓝桥杯
CODE_RabbitV1 小时前
【深度强化学习 DRL 快速实践】逆向强化学习算法 (IRL)
算法
mit6.8242 小时前
[贪心_7] 最优除法 | 跳跃游戏 II | 加油站
数据结构·算法·leetcode
keep intensify2 小时前
通讯录完善版本(详细讲解+源码)
c语言·开发语言·数据结构·算法
shix .2 小时前
2025年PTA天梯赛正式赛 | 算法竞赛,题目详解
数据结构·算法
风铃儿~2 小时前
Java面试高频问题(26-28)
java·算法·面试
wuqingshun3141592 小时前
蓝桥杯 4. 卡片换位
算法·职场和发展·蓝桥杯
江沉晚呤时2 小时前
深入了解C# List集合及两种常见排序算法:插入排序与堆排序
windows·sql·算法·oracle·c#·排序算法·mybatis
Eric.Lee20213 小时前
数据集-目标检测系列- F35 战斗机 检测数据集 F35 plane >> DataBall
人工智能·算法·yolo·目标检测·计算机视觉
Gsen28193 小时前
AI大模型从0到1记录学习 数据结构和算法 day20
数据结构·学习·算法·生成对抗网络·目标跟踪·语言模型·知识图谱