位置: 编程技术 - 正文
推荐整理分享基于PHP微信红包的算法探讨(python 微信红包),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php红包源码,php红包源码,php抢红包功能思路,基于php微信红包支付,php微信发红包接口,基于php微信红包交易,基于php微信红包交易,php微信发红包接口,内容如对您有帮助,希望把文章链接给更多的朋友!
突发奇想给校友微信群发了红包,我设定红包总额为元,支持个人随机领取。于是一个有趣的结果出现了:A 领取了 0.元B 领取了 0.元C 领取了 0.元D 领取了 0.元E 领取了 0.元……微信是采用什么样的算法做到的?简单百度了下,目前尚未有官方的说明,仅仅在知乎里有一个较为热门的讨论,链接戳这里,不过他们讨论的太过于深入,有掉坑之嫌。我按照自己的逻辑尝试了下,这个算法需要满足以下几点要求:1、每个人都要能够领取到红包;2、每个人领取到的红包金额总和=总金额;3、每个人领取到的红包金额不等,但也不能差的太离谱,不然就没趣味;4、算法一定要简单,不然对不起腾讯这个招牌;正式编码之前,先搭建一个递进的模型来分析规律设定总金额为元,有N个人随机领取:
N=1 则红包金额=X元;
N=2 为保证第二个红包可以正常发出,第一个红包金额=0.至9.之间的某个随机数 第二个红包=-第一个红包金额;
N=3 红包1=0.至0.之间的某个随机数 红包2=0.至(-红包1-0.)的某个随机数 红包3=-红包1-红包2
…… 至此,规律出现啦!开始编码!Php代码
输入一看,波动太大,这数据太无趣了!第1个红包:7. 元,余额:2. 元 第2个红包:1.9 元,余额:0. 元 第3个红包:0. 元,余额:0. 元 第4个红包:0. 元,余额:0. 元 第5个红包:0. 元,余额:0. 元 第6个红包:0. 元,余额:0. 元 第7个红包:0. 元,余额:0. 元 第8个红包:0. 元,余额:0 元
改良一下,将平均值作为随机安全上限来控制波动差Php代码
输出结果见下图第1个红包:0. 元,余额:9. 元 第2个红包:1. 元,余额:8. 元 第3个红包:0. 元,余额:8. 元 第4个红包:0. 元,余额:7. 元 第5个红包:1. 元,余额:5. 元 第6个红包:1. 元,余额:3. 元 第7个红包:2. 元,余额:0. 元 第8个红包:0. 元,余额:0 元
标签: python 微信红包
本文链接地址:https://www.jiuchutong.com/biancheng/301311.html 转载请保留说明!上一篇:thinkPHP多域名情况下使用memcache方式共享session数据的实现方法(thinkphp跨域)
下一篇:微信随机生成红包金额算法php版(微信随机红包表情包怎么弄)
友情链接: 武汉网站建设