Java怎么实现抽奖算法
作者:慢热型
时间:2023-04-25
浏览:0
一、题目描述题目:小虚竹为了给粉丝送福利,决定在参与学习打卡活动的粉丝中抽一位幸运粉丝,送份小礼物。为了公平,要保证抽奖过程是随机的。二、解题思路1、把参与的人员加到集合中2、使用Random对象获取随机数3、把随机数当下标,获取集合中的幸运用户三、代码详解publicclassBasics28{publicstaticvoidmain(String[]args){ListluckUserNames=getLuckUserNames();Randomrandom=newRandom();intluckNu
一、题目描述
题目: 小虚竹为了给粉丝送福利,决定在参与学习打卡活动的粉丝中抽一位幸运粉丝,送份小礼物。为了公平,要保证抽奖过程是随机的。
二、解题思路
1、把参与的人员加到集合中
2、使用Random对象获取随机数
3、把随机数当下标,获取集合中的幸运用户
三、代码详解
public class Basics28 {
public static void main(String[] args) {
List luckUserNames = getLuckUserNames();
Random random = new Random();
int luckNum = random.nextInt(6);
System.out.println("幸运的未来大佬是:"+luckUserNames.get(luckNum));
}
private static List getLuckUserNames(){
List luckUserNames = new ArrayList();
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 luckUserNames = getLuckUserNames();
Random random = new Random();
//key:luckNum ,value:count
Map luckNumMap = new HashMap();
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 getLuckUserNames(){
List luckUserNames = new ArrayList();
luckUserNames.add("学好c语言的小王同学");
luckUserNames.add("Ara~追着风跑");
luckUserNames.add("李慢慢_");
luckUserNames.add("Jasonakeke");
return luckUserNames;
}
} 
作者最新文章
CPU硅脂涂抹方法图解及正确操作步骤
2026-09-22 15:23
网易2026年Q2财报:营收301亿元,游戏收入增10%,三款重点新游披露进展
2026-09-08 17:51
PDF怎么添加页码?页码位置和起始页怎么设置?
2026-09-03 09:11
图片文件怎么转换成PDF?多张图片如何按顺序合成?
2026-09-02 19:33
CorelDRAW绘制正弦曲线的两种方法:贝塞尔工具与变形工具
2026-09-02 16:08
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































