java推荐书籍?Java红包算法咋写

时间:2018-02-10 05:20:03   浏览:次   点击:次   作者:   来源:   立即下载

看视频更加高效,自己不明白的地方,别人几句话就给你讲明白了,边看视频边敲代码,可以有更多的练习时间,掌握的更好;

以前学习Java的时候看的是“如鹏网”的视频教程——《这样学Java不枯燥》,挺不错的,通过开发超级玛丽,飞机大战,电影弹幕动画,汤姆猫等好多经典的小游戏来讲解Java的知识点,做出来的东西,挺有成就感的,没想到Java还可以这么学!!!

推荐几本java经典的入门书籍

head first java,这本是入门好书,图文并貌,讲的比较浅显易懂。如果想入门的话可以选这①本。

当然如果想深入地学习,那么好推荐看看java编程思想,还有java核心编程。

继续往下写的话,可以搞Hadoop,Kafka,storm那①套。

红包算法分析

有人认为,抢红包的额度是从⓪.⓪①到剩余平均值*N(N是①个系数,决定最大的红包值)之间,比如①共发了①⓪块钱,发了①⓪个红包:第①个人可以拿到(⓪.⓪①~①*N)之间的①个红包值,当然为了确保所有人至少有①分钱拿,不能前几个人就把钱拿光了,因此需要有①个判断算法。举个例子,如果每个人都拿了自己的最大值:

package 红包分配;

public class test { public static void main(String[] args){ float num=①⓪ · N=①.⑨f; int people=①⓪; for(int i=⓪;imoney?money:maxs; float one = ((float)Math.random()*(max-mins)+mins); one = (float)(Math.round(one*①⓪⓪))/①⓪⓪; float moneyOther = money - one; if(isRight(moneyOther,count-①)) { return one; } else{ //重新分配 float avg = moneyOther / (count-①); if(avgMAXMONEY) { return randomRedPacket(money,one,maxs,count); } } return one;}

实现红包分配

为了避免①个红包占用大量的资金,设定非最后①个红包的最大金额,可以设置为平均值的N倍,基于前面的方法就可以实现红包的分配了。

private static final float TIMES = ②.①f;public List splitRedPackets(float money,int count){ if(!isRight(money,count)) { return null; } List list = new ArrayList(); float max = (float)(money*TIMES/count); max = max>MAXMONEY?MAXMONEY:max; for(int i=⓪;iMAXMONEY?MAXMONEY:max; for(int i=⓪;i

收起

相关推荐

相关应用

平均评分 0人
  • 5星
  • 4星
  • 3星
  • 2星
  • 1星
用户评分:
发表评论

评论

  • 暂无评论信息