📚 文稿库

抢红包的金额分配,它公平吗?

视频通过蒙特卡罗模拟实验,深度解析了抢红包算法背后的数学逻辑、公平性定义及手气最佳的概率分布。

UP主: 玄感X · 时长: 2:48 · 🔗 B站原视频

标签: 算法 · 概率统计 · 蒙特卡罗方法 · 抢红包 · 思维模型

公平与有趣的定义

甲:我再强调一遍,春节抢红包算法必须设计得公平又有趣。

乙:十个人抢100块钱红包的话,每个人固定十块行吗?

甲:公平但不有趣。

乙:那每个人取一分钱到100块钱之间的随机值呢?

甲:有可能一个人抢了99,剩下九个人分一块钱。有趣但不公平,对那九个人也不有趣。

乙:懂了。假如这十个人抢1万次红包,公平就是每个人的均值要差不多都是十块钱,有趣就是方差要大。比如这次抢一块钱,下次抢19块钱,是这意思?

甲:那设成一分钱到20块钱之间的随机值呢?这样均值应该是十块钱,公平又有趣。

蒙特卡罗模拟与固定上限的缺陷

乙:怎么能验证一下?

甲:可以用蒙特卡罗方法。

乙:什么卡卡罗特?不懂。

甲:蒙特卡罗很简单,就是用程序模拟很多很多次,观察到的现象就表示了它实际的规律。走一个我看看。

乙:好了。这是模拟100万次抢红包的。结果和预期不太一致啊,前几位的均值方差都差不多,为什么后边变了呀?

甲:我想想啊。因为一开始红包余额充足,前面几个人都是一分钱到20块钱随机。比如一号抢的是多还是少,对2号没有任何影响,所以他们的均值和方差一模一样。但是到后边,要么余额不够多,7号、8号、9号抢不到20,而且越来越少,他们的均值就变小了;要么余额过多,全被最后一个人领取,所以它的均值和方差是最大的。

乙:得让每个人抢的多或少,立刻对后边产生影响,这才有意思。不能让前几个岁月静好,后几个负重前行啊。

动态上限算法

甲:问题在于固定上限20,把它调成动态了。怎么动态?不再是整体均值十块钱的二倍,而是剩余均值的二倍。

乙:是什么意思?

甲:你看哈,对于第一个人,他的上限是100块钱,十个人均值十块钱的二倍。如果他抢了一块钱,那么第二个人的上限就是剩余99块钱,九个人均值11块钱的二倍。依此类推,每个人的上限越来越高。

乙:这还公平吗?

甲:别忘了,公不公平看的不是上限,是均值哦。

手气最佳的概率分布

乙:对对对。再用你那个卡布奇诺模拟一下。

甲:蒙特卡罗!看,均值是一样的。方差呢?微涨,毕竟还是越到后边受到的影响越大。看起来不错诶。

乙:第几个抢更容易抢到最大的红包呢?你再用那个卡斯特诶……

甲:蒙特卡罗!你看啊,随着抢红包的人数增加,最后几位的手气最佳概率会逐渐提升。所以要在最后抢红包。

乙:别光看贼吃肉啊,看这手气最差的概率哦,也是后几位最大。

甲:对啊,均值是一样的,后边更容易抢到最大的红包,也更容易抢到最小的红包。

乙:原来如此。诶,那你觉得怎么抢是最好的?

甲:我觉得能抢到就是最好的。

On this page