上次写了一篇文章,关于支付宝集五福的模拟过程,这次谈另一个问题,分钱。
去年集齐人数就近3亿,瓜分金额5亿。如何分这个钱,既服从一定的分布,又基本随机,又刚好分完。
这个问题在IT那里非常常见,但现在我想从统计的角度,来解决这个问题。考虑效率缩减数量级,3000人分5000,原理是一样的。
想服从怎样的分布
正态、均匀、二八原则…… 参考链接
这里以均匀分布为例,希望每个人得到的金额在均值5/3的上下30%的区域内波动,这样的话有多有少,但相差幅度也不大
最大的难题是什么
直接按一定分布模拟生成的数据的和是无法直接控制的,一般只能控制均值和方差(比如正态分布)或者上下限(均匀分布)
模拟思路是什么
生成下限为5/30.7,上限为5/31.3,数量为3000,且服从均匀分布数据集(和5000与均匀分布的要求基本满足)
求和,100%不是5000,但一定在5000的附近,如果不强行要求刚好,可以到此为止,要求严格的话,执行下一步
实际和与5000求差值,差值平摊到3000个人,在原模拟数据的基础上加或减,over
最终数据集以及分布上所示,3000个数,和为5000,取值在1.337744与2.004137之间,基本服从均匀分布。