>  기사  >  Java  >  Java에서 복권 기능 알고리즘을 구현하는 방법은 무엇입니까?

Java에서 복권 기능 알고리즘을 구현하는 방법은 무엇입니까?

王林
王林앞으로
2023-04-27 08:25:062315검색

1. 질문 설명

제목: 샤오쉬주는 팬들에게 혜택을 드리기 위해 학습체크인 활동에 참여한 팬들 중 행운의 팬을 추첨하여 작은 선물을 주기로 했습니다. 공정성을 위해 추첨 과정은 무작위로 진행되어야 합니다.

2. 문제 해결 아이디어

1. 참가자를 세트에 추가합니다

2. 무작위 개체를 사용하여 임의의 숫자를 얻습니다

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;
    }
}

Java에서 복권 기능 알고리즘을 구현하는 방법은 무엇입니까?4. 복권 알고리즘 최적화

문제 해결 아이디어

랜덤 조회수가 너무 적어서 최적화가 필요함

모든 사람을 위한 무작위 조회수를 나열하고 더 개방적이고 공정하게 표시됩니다

자세한 코드 설명

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에서 복권 기능 알고리즘을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제