对于微信红包,大家应该都模式啊,很多的开发者都想知道微信红包随机尾数算法是什么,所以小编为此去了解了一番,然后为大家整理了下面的内容哦,各位亲们快来看看小编的介绍吧。
其实红包的发放的随机算法,有两种做法:
1、预生产:
无外乎是在发红包的时候,随机去把金额生成到某个容器当中,然后要用的时候,一个一个的POP;
2、实时随机
用户在抢红包的时候,根据随机算法,算出这次用户要抢到多少
本文讲的是第二种。
之所以没弄第一种,是因为我们的研发同学张智哥,在以前的红包发放算法里面就是用的第二种,而我在征求他的意见看是否改成预生产的时候,他想偷个懒,不想再加表、动流程啥的。我想想也是,动流程动出问题来了,到时候还是得哥背锅。虽然作为研发一直都有丰富的背锅经验和强大的背锅内心,但是,能够少背个还是少背个。
从此,也就开始了我比较黑暗的调整算法、调整参数的过程。
红包算法关键是要简单、迅速的找出随机值,而这个坑,什么正态分布修正、什么平方后再开方取随机数优化,我都尝试过。
结果很惨淡:要么是前面的拿大头的几率很大,要么是后面的拿大头的几率很大,而前面拿大头,或者后面拿大头,是我们运营的大爷们吐槽我们的随机算法做得不如微信好的一个重要原因(尼玛谈需求的时候不讲,还弄了个随机数范围要在8%到74%之间做限制,觉得不爽就让研发背锅)。
废话完了,说下我的算法:
其实很简单,两个随机数,一个随机0到2;一个随机-1到1;两个随机数之和乘以均值,就是这次跑出来的随机数。然后再做下上下限的保护就行了。
我的代码里面偷了个懒,只做了下限,没做上限的保护。因为毕竟是研究算法,不是实际生产环境代码。
好了,具体的算法模式在上面的内容中已经为大家整理出来了,各位亲们看完了以后,应该知道是如何计算的吧!这对于研究红包开发方面有很大的意义哦。请大家多多的关注我们的开淘网。
推荐阅读:
查看更多相似文章