高手在民间! 热门主页

(可爱)18年,18年 2018-01-17
上一篇     下一篇 共255篇  

红包统计学:为何有些人盆钵满盈,有些人入不敷出? 转 2015年02月27日 17:02:00

 

如果你有一台智能手机,如果你在上面装了某个软件,那么你今年的春节很可能是在下面这样的场景中度过的:

lucky_money_2.gif

lucky_money_3.gif

lucky_money_1.gif

这也使得众多的网友发出了下面的感慨:

 lucky_money_4.png

而最近几天不少群里面又流行起来一种“红包接力”的玩法,大概的规则是:群里面先由一人发一个红包,然后大家开始抢,其中金额最大的那个人继续发新一轮的红包,之后不断往复循环。

这时候大家或许就会问了,一直这么玩下去会有什么结果呢?是“闷声赚大钱”了,还是“错过几个亿”了?是最终实现“共同富裕”了,还是变成“寡头垄断”了?要回答这些问题,我们不妨用统计模拟的方法来做一些随机实验,得到的结果或许会让你大跌眼镜呢。

红包初级模型——切面条法

要进行模拟实验,就需要设定一个红包金额的分配机制。但由于微信红包的算法并没有公开,所以我们只好从观察到的现象出发,“反推”出一个模型,让它尽量符合观察结果。其实这就是科学方法的精髓:我们也许永远不可能知道宇宙的“源代码”,但我们能为宇宙建立一个足够好用的模型。

微信的红包是一个个抢的,所以很容易给人以这样的印象:红包一堆钱摆在那里,第一个人闭眼抓一把,第二个人再抓一把,等等。但是倘若果真如此,后来的人总体而言就要吃亏。这样既不公平,也不满足现实中的观察。

所以,更合理的做法是,一开始就把所有的钱一次性分成几个包,每人抓一个,每个包都是等同的,里面的钱数期望都是总金额的几分之一。满足这个要求的做法当然不止一个,但我们先考虑最符合直觉的办法——切面条

假如你有一根面条要随机分成5根,怎么分?闭上眼睛剁4刀就行了。换成数学语言,就是在一条线段上随机扔4个点,分成5段。

现在你要把红包分成5份,好办,拿出你刚才剁的面条,每一根面条有多长,对应的红包就塞多少钱。

(当然,面条是连续的,而红包是离散的——每个包的钱数都是1分钱的整数倍。但钱多的时候这点差异无关紧要,而要是有人发了个全一分钱的红包,还是暂停讨论把他踢出群比较好。)

以下就是切面条法分红包的一个实例,总金额为1元,分成5个:

0.02669467, 0.248426309,0.23745777,0.35864430,0.12877695

这贫富差距也太大了吧?如果红包总金额是100,那么领得最多的人可以得到35.86元,而最少的只有2.67元。第一名得到三分之一多的钱,最后一名不到三十分之一?其实这完全不极端。对于这种分法,我们可以数学上证明,当1块钱(或者长度为1的面条)分成n份儿的时候,

第k大的值,期望为1/n*(1/n+1/(n-1)+1/(n-2)+…+1/k)。(证明留作练习(被踢飞))

所以,最大值的期望为 1/n*(1/n+1/(n-1)+1/(n-2)+…+1),

而最小值的期望为 1/n^2。

换言之,在n=5的时候,平均而言,五个人应该分别拿到的红包大小是:0.456666……,0.256666……,0.156666……,0.09,0.04。真是朱门酒肉臭路有冻死骨啊。

好吧,虽然这恐怕和很多人的印象相符,但毕竟也太悬殊了,能不能增加一个调节杆,让红包间的差异稍微小一点呢?

红包进阶模型——狄利克雷分布

复习一下刚才的切面条模型要点。

1 一次可以生成n个随机数,且总和为1,这样每个数乘以红包总金额就是每个人分得的钱;

2 每个随机数的期望应该均等,即n分之一,这是为了保证大家抢红包机会平等;

现在我们为它增加一个第三条:

3 有一个参数可以用来调节红包的“公平”程度。这里的公平不是指机会公平,而是说每次发红包大家实际拿到手的钱是不是相近,即金额分配的波动性是大还是小。比如100元的红包发给10个人,如果每人都是10元左右,我们认为这种分配更公平些;如果最少的才0.8元,最多的有20元,显然就有失公允了(不幸的是作者好几次碰到这种情况……)。

幸运的是,在众多的随机变量分布中,有一个“狄利克雷分布”非常适合上面列出的这些情况。狄利克雷分布本身有n个参数,但为了满足条件2,我们可以只用一个参数 α 来决定它的具体形式。α 越大,每人分得的金额比例就越倾向于平均,反之则波动性越大。

更幸运的是,我们开始提出的切面条分法,恰恰就是当α=1的时候,狄利克雷分布的最简单状态。

(想深入了解狄利克雷分布,可以参考rickjin大侠的这篇文章以及狄利克雷分布的维基页面。)

刚才切面条的结果,也就是α=1时的狄利克雷分布生成的随机数

0.02669467, 0.248426309,0.23745777,0.35864430,0.12877695

而下面是α=10时的一组随机数

0.2459250,0.2722147,0.1717301,0.1398133,0.1703169

可以看出,当α=1时,金额分配的变动性非常大,而在α=10的情形下,金额的分配就平均多了。

模拟接力游戏,开始

有了这个假想的红包分配机制,我们就可以来模拟红包接力的游戏。首先假设我们有一个50人的群,每人初始手头上的可用金额为50元(这里是为了产生“破产”现象而故意放低的,土豪们请忽略此设定),根据规则,每次红包的总金额是20元,发放给10个人,其中抢得最大红包金额的人将发出下一轮的红包。如果某人发完红包后余额变成了负值,就不能再继续抢红包(请原谅这个丧心病狂的设定……),因为他/她已经发不起下轮红包了,但允许现在其余额为负。

在我们的模拟中,依然对实际情况做了很多简化,比如假设抢到红包的人是在参与游戏的人中间均匀分布的(排除了资产为负的人)。在实际情况中,大家可能会根据自己余额的多少来决定是否继续参加,但在此我们忽略了这种可能。

我们设定 α=2,并让红包接力100次,最后大家的余额如下:

31.24    82.69    18.07    44.56    62.87    33.40    47.00    45.55    77.11    70.44

54.28    26.98    54.74    80.30    28.32    43.98    48.80    82.69    82.94    -11.00

34.30    80.64    60.68    47.34    40.13    52.55    23.39    62.67    92.20    72.43

41.55    40.12    50.51    81.30    51.17    43.36    34.93    64.38    42.70    -8.90

9.10    78.61    46.35    64.18    61.90    13.61    50.01    68.51    41.21    54.14

可以看出,有两位朋友不幸破产了,而最后资产最多的有92.20元,几乎翻了一倍。一个很明显的事实是,破产的玩家都是因为“中头奖”中得太多了

...
注册或登录后查看完整内容

阅读(935)| 评论(1)

  1. ✿吴柳林✿ 2015年02月27日 17:02:17 举报
    `_>`

玩转人人 公共主页 公众平台 客服帮助 隐私

商务合作 品牌营销 中小企业
自助广告
开放平台

公司信息 关于我们 人人公益 招聘

友情链接 经纬网 人人游戏 人人分期

人人移动客户端下载 iPhone/Android iPad客户端 其他人人产品

X