微信抢红包算法详解 + Java语言实现


 

抢微信红包如何抢到最多,参见文章-清华博士毕啸天分析

 

 

微信红包内部的算法规则,每个人当前能抢到的金额,服从一个0.01到当前剩余均值两倍的左开右闭区间的均匀分布

 

举例说明: 假设有100元钱,分给10个人。那么第一个人获得红包大小怎么计算呢?100/10 = 10元。这是期望值。从0.01到20的区间中(其中20=10乘以2)随机抽取一个数,就是第一个人获得红包的大小;
                   假设第一个人获得了8元,那么剩下的92元平均分给9个人,这九个人平均获得红包大小为10.22元,那么第二个人的红包大小均匀分布于0.01元到20.44元的区间中;
                   依次类推。算法保证最后一个人至少抽到0.01元

 

基于以上算法思想,这里用Java语言进行封装实现(原创,转载请注明出处

 

1. 我们的红包类封装以下属性

2. 红包数据的有效性简单校验的方式;

 

两个原子方法(明细数据和最后的计算最佳)

 

 红包算法,其实就这一点点代码是真正的计算红包金额

 

 对外暴露被调用的方法

 

 main()方法调用简单测试

 

 运行测试结果: 我是不是小气了点 15个人分20块

 

若想直接要该源代码,请评论留下邮箱.


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM