微信拼手气红包C语言,微信拼手气红包算法分析

好长一段时间了,身边的朋友都是在揣着手机一直在抢红包,都知道抢红包是一件非常有趣的事,还会有人因为抢红包手气差而生气,其实我们是不知道微信红包随机的算法,其实微信红包不单单是靠手气抢大小的,它中间藏着很深的数据算法,只不过我们不知道而已,我们今天就来讨论一下微信红包的算法!小编精心为大家准备了一下相关材料,大家可以好好的看一看下面柱形图和指数分布柱形图所得出的红包获取平均值,具体数据就在下文哦,感兴趣的小伙伴们来看吧!

首先,我们来讨论一下为什么要采用截尾正态分布。介绍一种非常直接的方法:如果我有50元,要发给25人。那么我用连续均匀分布随机产生24个位于0到50之间的数字。这24个数字将整个0-50的区间划分为25份,分别分给这25个人。事实真的是这样吗?学过序列统计的人应该知道,由于这24个点是连续均匀分布产生的,因此他们的序列统计量也是连续均匀分布产生的,因此他们之间的间隔的分布是指数分布的。具体证明从略,

如果没有序列统计的背景,我们也可以做一个模拟。我有60元钱,按照上述数据产生机理随机分成60份(因此人均1元左右),反复操作10000次,对数据采取聚集后的归一化处理。由于中心极限定理(Central

Limit Theorem),该分布反应整体分布(Population Distribution)。画出柱形图如下:

02f84d677c78424fc06163b71c578d98.png

可见是符合指数分布的。

这种产生机理不好的地方在于:大多数人得到的钱非常少,而极少数人得到的钱却非常多,因此可能有一个公平性的问题,而这可能会对抽取人的积极性产生影响。截尾正态分布能够更好地避免这样的问题,因为更多人的红包大小会聚集在平均值附近,而且由于尾部更快的衰减,因此获得特别大的红包的概率也会相应减小,有助于增加公平性与参与的积极性。这一点佐证了土豆的观点,尽管具体截尾的方位可能需要获取更多的数据才有可能有一个准确的预测。

以下是我的两个样本的柱形图:

946897281f5bfbc072852863bf501d22.png

dc88a2f40c6f619a9f84345b2aeadd85.png

大家可以比照我的柱形图与上面指数分布柱形图。注意到:

1.更多的人获得的红包在均值附近;

2.获取大于2.5元的红包的概率几乎为零(事实上,第一个钱包的最高值是2.06,第二个钱包的最高值是2.10。然而假设是指数分布的(或者说均匀连续分布的数据产生机理),那么在每个60元红包中都会有一定量的抽取者抽到大于3甚至大于4元的红包--这点我通过模拟也确认了。

我进一步对正态假设做了检验

接下去我讨论一下获取钱包大小和抢钱包先后的关系。我的结论是,红包大小和抢红包先后没有统计意义上的关联。

如下是我的两个样本的红包大小数量,我把他们按照时间顺序进行了排序,因此越靠右的人代表越后抢红包的人。

其实先抢钱包还是后抢钱包对钱包大小的影响未必有很大的影响。事实上,我的两个样本中,抢到的钱数甚至是随着时间推移逐渐减少的,尽管减少的量非常非常小。因此楼上土豆举的例子中向上走的趋势可能是样本特性,不具有普适性。当然了,我也只有两个样本,更进一步的结论或许有待于更多人搜集并贡献钱包的数据。

综上所述,我的两个主要结论如下:

1)红包大小服从截尾正态分布,其好处是减少抽取红包大小分布的方差,让更多的人抽取的红包在均值附近,同时仍给一小部分人抽取大红包的机会,总体来说增加了红包抽取人的积极性和游戏的公平性;

2)抽取红包大小与抽取红包先后无相关性。一种可能的红包产生机制是:当发红包者的时候,程序自动依照截尾分布产生了相应大小,相应个数的红包,然后随机发给抽取红包的人。同样,这样的一个随机过程有助于增加游戏的公平性,也减少了红包抽取人投机操作(亦即譬如故意等钱包半空的时候再抽取)的动机。我在知乎上看到一位朋友谈到她的腾讯工作的朋友确认了红包产生是在时就完成了的,因此也在一定程度上增强了我的这种推测的可信度。

哈哈,看了开淘网小编的介绍,我们都知道拼手气的红包算法是怎么回事了吧!原来红包的大小和抢红包的先后是没有多大关系的。文章中对这方面制作出了具体的数据及图形分析,红包大小会聚集在平均值的附近,然后到尾部就好更快的衰减,所以获得较大红包的概率也就会相应减小了,好了,今天的分享就到这里了,想要了解更多有趣的文章,请关注开淘网!

推荐阅读:查看更多相似文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值