微信系统算法
发布时间: 2023-08-27 16:19:25
❶ 微信红包的随机算法是怎样实现的
一个红包要分10份的话,就取10个0.01到0.99的随机数,按照这10个数分配红包,来的人随机给。
当然10个随机数的和不能超过1,做法可以这样:
1. 维护一个当前剩余比例Rest,初始1
2. 维护一个当前剩余红包份数Left,初始10
3. 每次算随机数A的时候,要求A>0,并且A<=Rest*((Left+1)/2),保证随机数的和在1之内,并且没有哪个随机数太大,更新Rest=Rest-A
4. 最后一个随机数可以不按照3的要求,把所有的给它,也可以留做红包的剩余返回给用户。
热点内容