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

前言

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

一、红包背后的数学模型

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

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

作者:京东保险 吴凯

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

相关推荐
LNTON羚通32 分钟前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
哭泣的眼泪4082 小时前
解析粗糙度仪在工业制造及材料科学和建筑工程领域的重要性
python·算法·django·virtualenv·pygame
Microsoft Word3 小时前
c++基础语法
开发语言·c++·算法
天才在此3 小时前
汽车加油行驶问题-动态规划算法(已在洛谷AC)
算法·动态规划
莫叫石榴姐4 小时前
数据科学与SQL:组距分组分析 | 区间分布问题
大数据·人工智能·sql·深度学习·算法·机器学习·数据挖掘
茶猫_5 小时前
力扣面试题 - 25 二进制数转字符串
c语言·算法·leetcode·职场和发展
肥猪猪爸7 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
readmancynn7 小时前
二分基本实现
数据结构·算法
萝卜兽编程7 小时前
优先级队列
c++·算法
盼海7 小时前
排序算法(四)--快速排序
数据结构·算法·排序算法