收藏本站
博为峰Android开发培训Banner
您所在的位置:博为峰教育首页 > 资料精选 > 行业资讯 > 【行业资讯】别人在抢红包,java程序员在研究红包算法

【行业资讯】别人在抢红包,java程序员在研究红包算法

       发布时间:2015年08月07日   12:39分    来源:博为峰教育网采编   关键词:java、红包     | 上一篇 | 下一篇 |


      第三位同学按照网上流传的python写了一个java的版本

别人在抢红包java程序员在研究红包算法02.jpg

      第四位同学的这种算法看起来非常科学。

      他认为:

      1、每个人都要能够领取到红包;
      2、每个人领取到的红包金额总和=总金额;
      3、每个人领取到的红包金额不等,但也不能差的太离谱,不然就没趣味;
      4、算法一定要简单,不然对不起腾讯这个招牌;
      正式编码之前,先搭建一个递进的模型来分析规律
      设定总金额为10元,有N个人随机领取:N=1 
      则红包金额=X元;N=2
      为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数
      第二个红包=10-第一个红包金额;N=3
      红包1=0.01至0.98之间的某个随机数
      红包2=0.01至(10-红包1-0.01)的某个随机数
      红包3=10-红包1-红包2
      ……

别人在抢红包java程序员在研究红包算法03.jpg

      输入一看,波动太大,这数据太无趣了!
      第1个红包:7.48 元,余额:2.52 元
      第2个红包:1.9 元,余额:0.62 元
      第3个红包:0.49 元,余额:0.13 元
      第4个红包:0.04 元,余额:0.09 元
      第5个红包:0.03 元,余额:0.06 元
      第6个红包:0.03 元,余额:0.03 元
      第7个红包:0.01 元,余额:0.02 元
      第8个红包:0.02 元,余额:0 元

      改良一下,将平均值作为随机安全上限来控制波动差

别人在抢红包java程序员在研究红包算法04.jpg

      输出结果见下图
      第1个红包:0.06 元,余额:9.94 元
      第2个红包:1.55 元,余额:8.39 元
      第3个红包:0.25 元,余额:8.14 元
      第4个红包:0.98 元,余额:7.16 元
      第5个红包:1.88 元,余额:5.28 元
      第6个红包:1.92 元,余额:3.36 元
      第7个红包:2.98 元,余额:0.38 元
      第8个红包:0.38 元,余额:0 元

      小结:

      小编觉得这完全可以理解成一个红包引发的血案,小编仅仅列举了几个,还有一些工程学的同学直接抛出了数学模型、离散函数等等,但是无论算法是简单还是复杂,玩的开心就够了。