您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java中如何实现抽奖功能的算法?

2024/5/5 5:36:06发布19次查看
一、题目描述题目: 小虚竹为了给粉丝送福利,决定在参与学习打卡活动的粉丝中抽一位幸运粉丝,送份小礼物。为了公平,要保证抽奖过程是随机的。
二、解题思路1、把参与的人员加到集合中
2、使用random对象获取随机数
3、把随机数当下标,获取集合中的幸运用户
三、代码详解public class basics28 { public static void main(string[] args) { list<string> luckusernames = getluckusernames(); random random = new random(); int lucknum = random.nextint(6); system.out.println("幸运的未来大佬是:"+luckusernames.get(lucknum)); } private static list<string> getluckusernames(){ list<string> luckusernames = new arraylist<string>(); luckusernames.add("李慢慢_"); luckusernames.add("tryagain-"); luckusernames.add("team_dog"); luckusernames.add("jasonakeke"); luckusernames.add("学好c语言的小王同学"); luckusernames.add("ara~追着风跑"); return luckusernames; }}
四、优化抽奖算法解题思路随机次数太少,需要优化
需要列出所有人随机命中的次数,显示出来,比较公开公平
代码详解public class luckdraw { public static void main(string[] args) { list<string> luckusernames = getluckusernames(); random random = new random(); //key:lucknum ,value:count map<integer,integer> lucknummap = new hashmap<integer, integer>(); for (int i = 0; i < 100; i++) { int lucknum = random.nextint(4); integer count = lucknummap.get(lucknum); if(count==null){ count = 0; } ++count; lucknummap.put(lucknum,count); } integer maxlucknum = 0; integer maxcount =0; for(integer lucknum:lucknummap.keyset()){ if(maxcount<lucknummap.get(lucknum)){ maxcount = lucknummap.get(lucknum); maxlucknum = lucknum; } system.out.println(luckusernames.get(lucknum)+"同学的幸运值:"+lucknummap.get(lucknum)); } system.out.println("本周学习打卡积分第一且是幸运的未来大佬是:"+luckusernames.get(maxlucknum)); } private static list<string> getluckusernames(){ list<string> luckusernames = new arraylist<string>(); luckusernames.add("学好c语言的小王同学"); luckusernames.add("ara~追着风跑"); luckusernames.add("李慢慢_"); luckusernames.add("jasonakeke"); return luckusernames; }}
以上就是java中如何实现抽奖功能的算法?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product