查看原文
其他

清华博士:告诉你怎么抢微信红包,能抢到最佳?

侯晋中 2022-04-02

毕啸天,清华大学化工系博士。

https://v.qq.com/txp/iframe/player.html?vid=a0504kkrvmr&width=500&height=375&auto=0

  给大家讲关于抢红包的故事,也是我自己做的一个小探究。春节抢红包大家都玩过,现在抢红包已经是我们每年过年的一个全民竞技体育了,每个人抢到那几分钱都特别地开心。

  但有段时间我发现了一个奇怪的现象,就是不管别人发多大的红包,抢到我手里的每次都只有几分钱。而往往是抢红包比较晚的那些人,他们可以抢到一个比较大的红包。 

  这不科学吧?我说腾讯这么大的一个公司,它没有必要在算法上针对我呀。难道微信红包先抢和后抢的规律是不一样的?想到这个想法我非常地兴奋,我觉得如果我最后能找到这个规律的话,我就能抢到我所有的同学都破产为止。

  马上又开始实验了。我在周围借来了四部手机,连上我自己的一部,总共是五部手机,建了个五人群开始发红包。发红包之前我先做了这么一个先导实验:N个人抢N+1分钱。

  大家都学过抽屉原理,N个人抢N+1分钱就应该有一个人抢到2分钱,剩下的人都抢到1分钱。但实际做出来实验结果不是这样的,永远只有最后那个人才能抢到那个2分钱。

  我做了非常多次实验,结果肯定是对的。这个东西我把它命名为末位红包抽屉原理。也就是N个人抢N+1分钱,则必有最后一个人抢到2分钱。这个收益率很可怕,他的收益率达到了前面一个人的两倍。

  这个结果虽然很简单,但是它反映出来一个现象,就是微信红包的内部算法肯定不是均匀的,先抢后抢一定是有区别的,而且貌似后抢会占一点点优势。

  究竟是不是这样呢?我做了一个进一步的实验。

  我用5个人抢50块钱的红包,发了150次,然后统计了每一次这5个人的数据,得到这样750个数据。我把750个数据做在一张表上面。

  大家可以看出来,很惊讶的一个结果:5个人抢50块钱的红包,第一个人从来没有超过20块钱。做了150次,所以统计规律肯定是没有问题的。第二个人从来没有超过过25块钱,等到第三第四第五的人他们能抢到的钱数慢慢才上去。

  如果我们做一个统计学的分析,从平均值上来看,其实5个人抢到的钱差不多,都是在10块钱左右,5个人抢50块钱嘛。但如果从它的标准差,就是一个波动的情况,你会发现标准差越来越大。也就说第一个人可能只能抢到0到20,第四第五的人才能抢到0到50中间的任一个数字。

  后来经过我仔细地研究,我终于发现了微信红包内部的算法规则是什么?每个人当前能抢到的金额服从一个0.01到当前剩余均值两倍的左开右闭区间的均匀分布。

  什么意思呢?大概是说,5个人抢50块钱,那平均每个人能抢到10块钱。这个时候,第一个人抢的时候,他就只能抢到0—10×2也就是20块钱。你想第一个人多不巧,他只抢到了2块钱。那接下来的问题就变成了4个人抢48块钱,这个时候平均每个人能抢到12块钱。12的两倍是24,第二个人最大能抢到就变成24块钱。所以这个区间是一个不断放大的过程。

  最后等我发现了这个规律之后,你就可以做一些很无聊的脑洞。比如说你可以编程给自己发红包,然后有一天我就给自己发了五千万个红包,得出来这样一个规律。

  在五千万个红包下面这个规律就非常地明显了。你可以看到第1个人永远不会超过20,后面的这个规律分布在慢慢平缓下来。

  此外,通过编程你还可以统计一个现象,就是最佳手气,这是很多人关注的一个点。最佳手气在各个人各个位置的概率是均等的吗?其实也不是。最后我发现最佳手气的概率在5个人抢的时候是依次递减的。

  然后我的脑洞又发散了一下,我说难道5个人是这样,那几个人抢都是这样吗?于是我又做了一个编程,很无聊,就给自己发了两亿个红包。最后做出来这样一张图。

  这张图可以说是微信抢红包里面包罗万象,它把所有的情况都概括了。它统计出了从3个人抢到27个人抢,如果你愿意的话,我可以统计到任何多个人抢。从3个人到27个人,不同的人在抢红包的时候,每一个位置抢到手气最佳的概率这个变化究竟是什么样子的。

  从这张图的最后我大概得出一个结论,就是通常抢红包的人比较多的时候,应该是越往后往往抢到手气最佳的概率越大。所以以后我看到红包都先憋一会儿,我等你们先把前面的小红包都抢走了,憋到后面我再去把那个大的捞回来。

  后来在这种思想的指导下,我就再也没有抢到过红包。

  当你看完这个故事,是否觉得理工男的生活好像也蛮丰富多彩的。理工男嘛,就是有问题要解决问题,没有问题创造问题也要解决问题。


延伸阅读

《是真的吗?——又一个探寻真理的小实验》

  前段时间在微博上有一个话题特别火,叫作 #香蕉和枣一起吃会看到人生的走马灯#

  很多人可能都自己亲身测试过这东西。当时我看到这个问题觉得特别有意思,因为香蕉和枣这两个东西本身都是生活中非常常见的食材,我以前怎么没听人说过这一茬,两个一起吃会有这么神奇的现象。我觉得这是个好问题,值得研究。

   我就回头看他们都是怎么描述的。最开始发现的那个人,他说是能在嘴里看到人生的走马灯。后来还有人描述说能看到孔子和苏格拉底打架。我觉得这个描述已经非常地不容易了,在这个年代知道苏格拉底长什么样就不容易。 

  吃的人越来越多,这个描述也越来越丰富。后来人们做了非常多的描述,比如说什么死虾腐烂、满天神佛、洗洁精、死苍蝇、翔,等等等等。

  当时我看完这些描述之后,觉得这好像不科学。因为洗洁精、死苍蝇和翔,它们不是同一个味道。你们别管我是怎么知道它们不是同一个味道的。

  我是理工男嘛,理工男遇到这么无聊的问题就要研究嘛,科学精神。科学精神就是我可以吃翔,但这个翔我要吃得很科学。

  我们回过头去看他描述的香蕉和枣,他既没有说这个枣是红枣还是冬枣,也没有说一起吃是什么概念——是先吃这个再吃这个呢,还是两个拿起全部都放在嘴里呢?这种描述就使我买回来也没法吃。所以我就买了大概三斤香蕉、两斤红枣、两斤冬枣,开始做这个实验。

  实验的步骤也非常地简单。第一步:先刷牙,清洁口腔;第二步:先吃一口香蕉再吃一口枣,充分地咀嚼混合,让这个味道散出来;第三步,也是最关键的一步:你要找到身边离你最近的一个人,突然朝他哈一口气,看他有什么样的反应。

  当时我正在自己嚼啊嚼啊嚼,开始其实没有什么太大的感觉。后来突然觉得不对,好像有一种恶心的味道上来,那大概是一种类似于84消毒水的腥味。

  不知道大家能不能理解那种感觉,理工男内心里面本能地有一种优化的思路。什么意思呢,就是我是很愿意花一个小时的时间去思考,怎么把一个原来要十分钟就能做完的事情优化到只要五分钟就能做完。 

  所以后来我觉得既然这个恶心的味道已经出来了,那我就要思考怎么样能把这个恶心的味道优化得再恶心一点。所以我就设计了这么一些实验—— 

  首先你用不同的水果组合,香蕉究竟是熟透的香蕉还是半熟的香蕉,枣究竟应该是红枣还是冬枣。


  其次你也可以研究不同的枣蕉比,在吃的时候究竟会给你的口腔带来什么样的体验。


  我们再回过头去看这个一块儿吃的描述,一块儿吃是很不科学很不严谨的一个描述。那他究竟是先吃香蕉再吃枣,

  还是先吃枣再吃香蕉呢,

  还是两个东西都放在嘴里面一起咬进去呢?

  做完了这么多实验,最后在我吃得差不多快要吐的时候,我终于研究出了这个结论:这个东西大概是在先吃熟香蕉后吃冬枣,在两者体积比为2:1的时候可以达到一种极致的恶心。

  当我在嘴巴里面感受那种恶心的时候,我觉得太棒了,这就是我要的感觉,这就是科学的胜利。

  为毕博士的研究精神点赞!世界上凡事就怕认真二字!真理即出于此!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存