Maison  >  Article  >  Java  >  Comment implémenter l'algorithme de la fonction de loterie en Java ?

Comment implémenter l'algorithme de la fonction de loterie en Java ?

王林
王林avant
2023-04-27 08:25:062310parcourir

1. Description de la question

Titre : Afin d'offrir des avantages aux fans, Xiao Xuzhu a décidé de tirer au sort un fan chanceux parmi les fans qui ont participé à l'activité d'enregistrement d'apprentissage et de lui offrir un petit cadeau. Par souci d’équité, le processus de loterie doit être aléatoire.

2. Idées de résolution de problèmes

1. Ajoutez les participants à l'ensemble

2. Utilisez l'objet aléatoire pour obtenir des nombres aléatoires

3. Soustrayez le nombre aléatoire pour obtenir l'utilisateur chanceux dans l'ensemble

3. Code Explication détaillée

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

Comment implémenter lalgorithme de la fonction de loterie en Java ?

Quatre. Optimisation de l'algorithme de loterie

Idées de résolution de problèmes

Le nombre de coups aléatoires est trop petit et doit être optimisé

Le nombre de coups aléatoires pour tout le monde doit être répertorié et affiché, ce qui est plus ouvert et juste

Explication détaillée du code

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

Comment implémenter lalgorithme de la fonction de loterie en Java ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer