友情提示:
全文约6400字,阅读全文约10分钟。
如果觉得时间紧张,可以跳过实验过程直接拉至文末看结论。
春节是中华民族隆重的农历新年,这是世界上规模最大的节日。
在春节前后,炎黄子孙们不远万里衣锦还乡,与亲人们团圆。
在此期间,中国的铁路上会发生,地球上最大规模的人口迁徙。
作为世界上最能吃最能玩的种族,聪明勇敢的中国人发明了非常多的娱乐活动,比如:
贴春联、放鞭炮、看春晚、接财神、吃饺子……
以及……抢红包……
而2017年除夕,微信共收发微信红包142亿个!
一、微信红包,先抢后抢究竟公不公平?
微信红包先抢后抢的确是有区别的!
(我们所说的公平,是指随机、均匀,先抢后抢没有区别。比如抓阄就是一个典型的公平规则,不管先抓后抓,每个人抓到的概率和分布都是一样的。)
用一个很简单的抢红包实验就可以证明:
比方说有
n个人
抢一个
(n+1)分钱
的红包,那结果肯定是
某一
个人抢到2分钱
,
剩下的人抢到1分钱
。
(你说这不废话么……劳资的抽屉原理在小学的时候就已经通关了)
但如果你真的发一个这样的红包你就会发现一个吼神奇的现象!
我称之为
“末位红包抽屉原理”(Last red bag drawer principle)
末位红包抽屉原理
:
n个人
抢一个
(n+1)分钱
的红包,必然是
前面的人都抢到1分钱
,
最后一个人抢到那个2分钱!
下面由我和我的4个小号为大家具体展示一下实验结果
(1)2个人抢3分钱,是亚清抢到了2分钱
(2)3个人抢4分钱,最后一个人抢到2分钱
(3)4个人、5个人的情况,结论都是一样的!
过去我们可能本能地认为,微信抢红包无非就是把一个钱随机分成几份,然后随机分给几个抢红包的人。但我的
“末位红包抽屉原理”
已经充分证明了
微信红包先抢和后抢是有很大区别的
!否则就不可能永远只有最后一个人能拿2分钱!
虽然说现实生活中很少会有一个人发几分钱红包而不被打死的情况出现,但是我们的实验已经为探索微信抢红包的原理迎来了曙光!
二、先抢抢不到大的,后抢才能抢到大金额?
直接先亮出答案
是!这!样!的!
看到这里许多读者可能会大吃两惊!
但如果你仔细查查自己抢过的红包就会发现,第一个抢的人永远抢不到很大的数。我称之为
“先抢抢不到大红包原理”(First rob rob no big red bag principle)
下面我和我的4个小号为大家带来一组抢红包实验!
【实验内容】我发
50块
的红包,给
5个人
抢。红包发了
210个
,记录每次第1个人抢到的金额。
(抢的顺序是经过打乱随机的,以排除人品等干扰因素。)
结果表明,第一个抢的人抢到的红包金额分布范围是这样的
图2. 第一个人抢到的微信红包金额频数分布直方图
发现这其中的诡异之处了吗?
5个人抢50块红包抢了210次,第一个人竟然
永远抢不到20块以上的红包!最高只抢到过19.88元!
也就是说,
真正的大红包都只会在后面出现
,像这样
为了进一步研究这其中的规律,我准备了大量资金,发个痛快!
【实验内容】定义5个人的标准顺序:毕导-亚清-小美-欧拉·王-梅大江。轮换他们的顺序,在每一种顺序下
发50块红包,抢30次,共150次
。
记录每次5个人抢的红包金额,得到750个原始数据。
(如下图所示)
最终得到的五个人抢到红包的金额范围分布是这样的
图3. 不同抢红包顺序抢到的金额频数分布直方图
这张图已经可以告诉我们许多规律了
-
第一个人永远不会超过20元!直接认输吧!
-
从第三个人开始才勉强能抽到30元以上!
-
越往后,才越有希望抽到超级大红包!
-
抽到大红包的概率是很小的(好像是废话吼)
可怕!早在2014年我就已经开始暗自用打地鼠游戏练习抢红包,最终习得一身技艺,指如疾风,势如闪电,可以扫平所有群的所有红包,江湖人称“红包霹雳手”!
然而现在看来,
“先抢抢不到大红包原理”
已经注定了,正是我超凡的手速让我输在了起跑线上……
我必须要继续探究出一套最佳的抢红包策略!
三、抢红包和人品有关吗?
在进一步实验之前,我觉得首先得排除一个因素的干扰……
世间万物都有它运行的法则!
理论上讲,你抽SSR和我抽SSR的概率是一样的,你出敬业福的概率和我也是一样的。但是这个世界就是会分出非洲人和欧洲人,就是有人敬业有人不敬业
(我已经集齐五福了,我去年也集齐五福了的嘿嘿)
生活中的种种不公平让我们不得不思考:
除了概率之外,还有一种更重要的东西在左右着我们的客观世界
——人品!
5个人抢的150个50元红包的结果是这样的
图4. 五个人抢到的金额频数分布直方图
呃……至少五个人都能抽到大红包……脸还不算太黑……那么究竟
谁最厉害呢?请看下面的散点图以及表格数据
图5. 五个人抢到的金额
5个人抢50块,平均每人10块钱
从图上可以看出,5个人的
平均值都是在10块钱附近
,
标准差也都在6~7之间
。
但是细细看看统计数据还是有明显差异的……
我的平均值只有
9块1
!小美有
10块7
!这差距也太尼玛大了吧!
我的手气佳次数也很低!而手气最烂次数排名第一!
综合看来,小美的人品最好,欧拉·王其次但是发挥不稳定,下来是梅大江、亚清,人品最差的就是我……可能人品和颜值是成正比的吧……
--“所以微信抢红包这事和人究竟有没有关系啊?”
--“人品这种事情,如果能用理论算的话还叫人品吗?”
四、抢红包最优策略是什么!
人品这种虚无飘渺的因素还是
撇开
不谈了,毕竟大过年的我们也很难在抢红包之前突击扶老奶奶过马路来攒人品(摊手)
抢红包的时候我们唯一能控制的就是先抢还是后抢
!另外我记得
之前微信群里经常有抢红包的游戏,规则很简单,就是
抢到“手气最佳”的人要继续发红包
所以接下来我们的研究任务是!
-
平均抢到的钱是先抢的多还是后抢的多?
-
抢到钱的波动是先抢大还是后抢大?
-
拿到“手气最佳”的概率是先抢高还是后抢高?
依然采取前面的那组实验数据,
在五种抢红包顺序下的原始数据是这样的
图6. 五种顺序下抢到的金额
直观上看大家平均都在10块上下波动
下面我们忽略人的因素,把五张图的数据汇总到一张图上!
图7. 五种顺序下抢到的金额汇总
看到这里可能有人会质疑,
你这不就只做了150个红包实验,样本量太小,得出来的结果可能根本不具备普遍规律啊!
但是反正大过年的闲得慌,我的探究当然不会就此停止!
五、微信究竟怎么设计的抢红包?
按照正常的套路,抢红包最简单的办法不就是把红包的总钱数随机分给几个人么……但是微信偏不这么搞,就是一定要让第一个人抽到的钱只能在0.01元到20元之间。
对于5个人抢50块红包而言,20元是个什么数?
在一篇《微信红包的架构设计简介》的文章中提到这可能是
“平均值的2倍”
(也就是说,每个能抢到的钱最多是当前剩余金额的平均值的2倍)
虽然不明白微信为什么要搞这套规则,但是我们不妨拿数据检验一下这个规则对不对!
(以下为理论推导,文科生可快进)
(1)检验第一个人抢到的金额是否服从均匀分布
简化:
抢红包问题本身是(¥0.01,¥0.02,…)的离散分布,在此为检验均匀分布,将其作为连续分布近似处理。
首先对每个人作为首抢时的数据分析,
进行K
olmogorov-Smirnov检验,利用累积分布函数检验第一个人抽到的金额是否服从均匀分布。假设检验均通过,得到类似“毕导第一个抢时,毕导抢到的金额确定是均匀分布”的结论。
(2)检验是否有人品因素的干扰
看五人分别作为首抢时是否有个人因素导致抢到金额有分布上的差异,进行Anderson-Darling k-样本检验,发现其实没有。所以抢红包次数足够多的前提下,不存在脸帝光环。
(3)抢到的金额是多少到多少的均匀分布?
最小值肯定是0了,因为实际中已经知道有人不管红包金额多大都只能抢到1分钱。
根据统计推断的点估计理论中的极大似然估计知道,参数的极大似然估计是最大值。我们的210组抢红包数据中,第一个人最大就抢到过19.88元。
但是极大似然估计往往低估了,采用
贝叶斯估计的方法。
先验分布选共轭的帕累托分布,后验均值是mN/(N-1)=210/(210-1)*19.88=19.975。
基本可以在统计学意义上断定,均匀分布的右端点是20。
(4)后面抢的人也服从0.01~剩余均值2倍的均匀分布吗?
根据第一个人的均匀分布可以递推出第二个人的分布密度函数,进一步用类似方法检验第二个人抢的金额是否符合这个密度函数。检验同样通过,第二个人的金额服从0.01~剩余均值2倍的均匀分布。当然
从算法的简洁性上来说,微信也不太可能给第一个抢和后抢设置不同的算法规则。因此我们有一定的理由相信微信红包是按这个规则设计的。
至此基本可以给出微信设计的抢红包规则了:
每个人能抢到的金额服从0.01到2倍剩余均值之间的均匀分布。
我们5个人抢50块:
-
第一个人最多能抢到2*50/5=20元,比如他抢了5元,此时剩下45元。
-
第二个人最多能抢到2*45/4=22.5元,比如他抢了12元,此时剩下33元。
-
第三个人最多能抢到2*33/3=22元,比如他抢了17元,此时剩下16元。
-
第四个人最多能抢到2*16/2=16元,他和第五个人分这16元。
下面要考虑的问题是:
这种规则产生的红包,是否会导致先抢后抢均值相等,而后抢的方差更大?
(以下是一大段的理论推导,文科生可快进)
将问题抽象为
n个人抢一个S元的红包
证毕,在微信红包的“0.01~2倍剩余均值均匀分布”算法下,先抢后抢的均值相同,越往后抢方差越大。最后两个人同分布。
六、闲得蛋疼
现在既然我们已经知道了微信红包的算法原理……
那就可以编程给自己发红包看规律了……
出于礼貌,我用matlab给自己发了五万个红包。五个人抢红包金额分布图是这样的(纵坐标太大隐去了……)
图8. 不同先后顺序抢到的金额分布图(五万次模拟)
图9. 不同先后顺序抢到的金额汇总(五万次模拟)
结果一切尽在掌握之中!均值相同,标准差变大,第一个人有最多的“手气最佳”!
由于最近真的有人拉我玩“手气最佳发红包”的游戏,吓得我赶紧给自己发了一千万个红包研究理论规律。
毕竟这个游戏里只抢不发闷声发大财是坠吼滴,一抽到手气最佳之前抢的钱都白费了。
图10. 不同先后顺序下抢到的手气最佳、最差(一千万次模拟)
看来
先后顺序对抽到“手气最佳”是有决定性影响的!
5个人抢红包的时候,越先抽,抽到“手气最佳”的概率越大!
第1个人
抢到
手气最佳
的概率是
21.6%
,而最后俩人的概率只有
19.2%
!相反,
第1个人
抢到
手气最差
的概率是
16.6%
,最后俩人的概率高达
23.5%!
不过只有5个人抢的时候有这个规律。
当参与抢红包的人数变化时,“手气最佳”的概率随着先抢后抢顺序变化的规律也是不一样的。
所以一帮人玩“手气最佳发红包”的游戏时
-
3~5人时“手气最佳”概率是随抢的顺序而降低的,所以果断要憋到后面再抢!
-
6~15人时概率是先降低后增加的,所以要看准技巧和时机,挤在中间的位置抢!
-
16人以上时基本是越往后概率越高,尽量先抢!最后两个人拿到“手气最佳”的概率极高!
七、结论
来源:综合毕导、温州晚报、半岛都市报