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

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

王林
Libérer: 2023-04-27 08:25:06
avant
2335 Les gens l'ont consulté

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;
    }
}
Copier après la connexion

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;
    }
}
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal