zoukankan      html  css  js  c++  java
  • 微信抢红包算法详解 + 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块

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

  • 相关阅读:
    java 装饰者模式与继承的区别
    Java学习笔记-多线程-创建线程的方式
    java IO流复制图片
    如何解决代码重复问题
    jdbc的基本应用
    java多线程
    java中的集合和数组
    Collections的应用
    Map集合的应用及其遍历方式
    qweb
  • 原文地址:https://www.cnblogs.com/xin1006/p/11897707.html
Copyright © 2011-2022 走看看