最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)抽獎(jiǎng)算法的示例代碼

 更新時(shí)間:2022年04月18日 09:13:36   作者:小虛竹  
這篇文章主要為大家詳細(xì)介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)抽獎(jiǎng)算法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定幫助,需要的可以參考一下

一、題目描述

題目: 小虛竹為了給粉絲送福利,決定在參與學(xué)習(xí)打卡活動(dòng)的粉絲中抽一位幸運(yùn)粉絲,送份小禮物。為了公平,要保證抽獎(jiǎng)過(guò)程是隨機(jī)的。

二、解題思路

1、把參與的人員加到集合中

2、使用Random對(duì)象獲取隨機(jī)數(shù)

3、把隨機(jī)數(shù)當(dāng)下標(biāo),獲取集合中的幸運(yùn)用戶(hù)

三、代碼詳解

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("幸運(yùn)的未來(lái)大佬是:"+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("學(xué)好c語(yǔ)言的小王同學(xué)");
        luckUserNames.add("Ara~追著風(fēng)跑");
        return luckUserNames;
    }
}

四、優(yōu)化抽獎(jiǎng)算法

解題思路

隨機(jī)次數(shù)太少,需要優(yōu)化

需要列出所有人隨機(jī)命中的次數(shù),顯示出來(lái),比較公開(kāi)公平

代碼詳解

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)+"同學(xué)的幸運(yùn)值:"+luckNumMap.get(luckNum));
        }
        System.out.println("本周學(xué)習(xí)打卡積分第一且是幸運(yùn)的未來(lái)大佬是:"+luckUserNames.get(maxLuckNum));
        
    }
    
    private static List<String> getLuckUserNames(){
        List<String> luckUserNames = new ArrayList<String>();
        luckUserNames.add("學(xué)好c語(yǔ)言的小王同學(xué)");
        luckUserNames.add("Ara~追著風(fēng)跑");
        luckUserNames.add("李慢慢_");
        luckUserNames.add("Jasonakeke");
        return luckUserNames;
    }
}

到此這篇關(guān)于Java實(shí)現(xiàn)抽獎(jiǎng)算法的示例代碼的文章就介紹到這了,更多相關(guān)Java抽獎(jiǎng)算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中存對(duì)象和取對(duì)象的方式詳解

    Spring中存對(duì)象和取對(duì)象的方式詳解

    這篇文章主要介紹了Spring中存對(duì)象和取對(duì)象的方式,Spring中更簡(jiǎn)單的存對(duì)象與取對(duì)象的方式是注解,注解實(shí)現(xiàn)有兩種方式:一在編譯的時(shí)候,把注解替換成相關(guān)代碼,并添加到我們?cè)瓉?lái)的代碼中,二攔截方法,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-08-08
  • java servlet獲得客戶(hù)端相關(guān)信息的簡(jiǎn)單代碼

    java servlet獲得客戶(hù)端相關(guān)信息的簡(jiǎn)單代碼

    這篇文章主要介紹了java servlet獲得客戶(hù)端相關(guān)信息的簡(jiǎn)單代碼,有需要的朋友可以參考一下
    2013-12-12
  • Java拆分List的三種方式總結(jié)

    Java拆分List的三種方式總結(jié)

    開(kāi)發(fā)中我們可能會(huì)遇到一個(gè)大的集合,然后我們需要對(duì)集合進(jìn)行拆分,在這篇文章中,主要介紹了Java拆分List的三種方式,需要的可以參考下
    2023-05-05
  • IDEA之配置JDK、Git、Maven詳解

    IDEA之配置JDK、Git、Maven詳解

    文章總結(jié):本文介紹了如何在IDEA中配置JDK、Git和Maven,包括設(shè)置Java編譯器路徑、配置Git版本控制、修改Maven根目錄以加快jar包下載速度,并提供了一個(gè)解決方案以確保配置在新項(xiàng)目中生效
    2025-01-01
  • Java Swing中JTable渲染器與編輯器用法示例

    Java Swing中JTable渲染器與編輯器用法示例

    這篇文章主要介紹了Java Swing中JTable渲染器與編輯器用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Swing中JTable渲染器與編輯器的功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-11-11
  • SpringCloud微服務(wù)多應(yīng)用腳手架的搭建與部署方式

    SpringCloud微服務(wù)多應(yīng)用腳手架的搭建與部署方式

    這篇文章主要介紹了SpringCloud微服務(wù)多應(yīng)用腳手架的搭建與部署方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot使用Jackson配置全局時(shí)間日期格式

    SpringBoot使用Jackson配置全局時(shí)間日期格式

    本文主要介紹了SpringBoot使用Jackson配置全局時(shí)間日期格式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Java多態(tài)中的向上轉(zhuǎn)型與向下轉(zhuǎn)型淺析

    Java多態(tài)中的向上轉(zhuǎn)型與向下轉(zhuǎn)型淺析

    多態(tài)是指不同類(lèi)的對(duì)象在調(diào)用同一個(gè)方法是所呈現(xiàn)出的多種不同行為,下面這篇文章主要給大家介紹了關(guān)于Java多態(tài)中向上轉(zhuǎn)型與向下轉(zhuǎn)型的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • SpringCloud Feign遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解

    SpringCloud Feign遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解

    Feign是Netflix公司開(kāi)發(fā)的一個(gè)聲明式的REST調(diào)用客戶(hù)端; Ribbon負(fù)載均衡、 Hystrⅸ服務(wù)熔斷是我們Spring Cloud中進(jìn)行微服務(wù)開(kāi)發(fā)非常基礎(chǔ)的組件,在使用的過(guò)程中我們也發(fā)現(xiàn)它們一般都是同時(shí)出現(xiàn)的,而且配置也都非常相似
    2022-11-11
  • Netty中的DelimiterBasedFrameDecoder使用方法詳解

    Netty中的DelimiterBasedFrameDecoder使用方法詳解

    這篇文章主要介紹了Netty中的DelimiterBasedFrameDecoder使用方法詳解,DelimiterBasedFrameDecoder與LineBasedFrameDecoder類(lèi)似,只不過(guò)更加通用,允許我們指定任意特殊字符作為分隔符,我們還可以同時(shí)指定多個(gè)分隔符,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

桓台县| 泸定县| 长治市| 大埔县| 乌什县| 台州市| 成都市| 松溪县| 冀州市| 桂阳县| 莱芜市| 霸州市| 江津市| 巴彦淖尔市| 萨嘎县| 凭祥市| 平泉县| 林西县| 大足县| 正阳县| 广元市| 蚌埠市| 龙山县| 金昌市| 山东省| 新宁县| 靖远县| 山东| 温州市| 会昌县| 泽库县| 龙山县| 建德市| 保山市| 贡觉县| 天全县| 丰顺县| 翁牛特旗| 大兴区| 绥江县| 彭山县|