红包算法-二倍均值法

今天看到个有意思的题目,赶快来记录下来
就是说 100块钱随机发红包,怎样才能公平
假设剩余红包金额m元,剩余人数n人。那么有如下公式
每次抢到的金额=随机区间[0.01,m/n2-0.01]元
举个例子
100/5
2=40元。 所以第一个人抢到的金额范围在0.01-39.99元。
第二个人 80/4*2 所以第二个人抢到的金额范围在0.01-39.99元
所以,每个人抢到的范围均值是相等的

然后突然想到之前在b站看到一个毕导关于微信红包的视频。
然后,我又回去翻看了一下
然后又找到了视频中提及的微信神秘架构师的帖子。

分配:红包里的金额怎么算?为什么出现各个红包金额相差很大?
答:随机,额度在0.01和剩余平均值2之间。
例如:发100块钱,总共10个红包,那么平均值是10块钱一个,那么发出来的红包的额度在0.01元~20元之间波动。
当前面3个红包总共被领了40块钱时,剩下60块钱,总共7个红包,那么这7个红包的额度在:0.01~(60/7
2)=17.14之间。
注意:这里的算法是每被抢一个后,剩下的会再次执行上面的这样的算法(Tim老师也觉得上述算法太复杂,不知基于什么样的考虑)。
这样算下去,会超过最开始的全部金额,因此到了最后面如果不够这么算,那么会采取如下算法:保证剩余用户能拿到最低1分钱即可。
如果前面的人手气不好,那么后面的余额越多,红包额度也就越多,因此实际概率一样的。

看完毕导的视频,(前提条件,5个人抢50块钱)
毕导这么解释的
理论,第一个人最多抢20元。
如果第一个人抢不到十元,比如2元,那么局面就变成了四个人抢48块钱,平均每个人最多24元
。。。。。。。。。然后得出结论
第一个人天花板20元,第二个人24.99元,第三个人33.32元,第四五个人在0.01-49.96都有可能。
最后得出结论,
微信抢红包的规则:每个人能抢到的金额,服从0.01到2倍的均值之间的均匀分布。

但是,我还是有个小疑问,那可以证明后抢比先抢红包概率大吗。
后来想想,后抢只是最大高度比较高,但是低的可能性也会被拉高
也就是说,后抢只是金额跨度被拉长,先抢密度比较大而已。
个人理解,希望大佬们可以指出思考的死胡同。

发布了11 篇原创文章 · 获赞 1 · 访问量 185

猜你喜欢

转载自blog.csdn.net/z591593455/article/details/104693636