欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 微信隨機(jī)紅包算法代碼實(shí)例

 更新時(shí)間:2016年10月11日 14:02:40   作者:李明澤  
這篇文章主要介紹了java 微信隨機(jī)紅包算法的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下

前幾天的一個(gè)晚上突然想到微信紅包應(yīng)該有一個(gè)隨機(jī)算法,就自己試著寫了下,也不知道對(duì)不對(duì),看了看網(wǎng)上的說法,好像到現(xiàn)在為止官方也沒有給出一個(gè)確切的算法,只好在這里獻(xiàn)丑了,先貼出代碼:

 public static double [] getMoney(double money, int num){
    Random r = new Random();
    DecimalFormat format = new DecimalFormat(".##");
    
    double middle = Double.parseDouble(format.format(money/num));
    double [] dou = new double[num];
    double redMoney = 0;
    double nextMoney = money;
    double sum = 0;
    int index = 0;
    for(int i=num;i>0;i--){
      if(i == 1){
        dou[index] = nextMoney;
      }else{
        while(true){
          String str = format.format(r.nextDouble()*nextMoney);
          redMoney = Double.parseDouble(str);
          if(redMoney>0 && redMoney < middle){
            break;
          }
        }
        nextMoney = Double.parseDouble(format.format(nextMoney - redMoney));
        sum = sum + redMoney;
        dou[index] = redMoney;
        middle = Double.parseDouble(format.format(nextMoney/(i-1)));
        index++;
      }
    }
    return dou;
  }

這里一個(gè)基本思路是這樣的:首先算出紅包的平均值,再通過一個(gè)隨機(jī)紅包數(shù)小于這個(gè)平均值的紅包,當(dāng)該紅包發(fā)完后,紅包總金額需要相應(yīng)減少,同時(shí)重新計(jì)算這個(gè)平均值:新的總金額%(原總紅包數(shù)-1),直到最后一個(gè)紅包時(shí),把所有的剩余金額塞進(jìn)去。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • SpringBoot熱重啟配置詳解

    SpringBoot熱重啟配置詳解

    在本篇文章里小編給大家分享的是關(guān)于SpringBoot熱重啟配置知識(shí)點(diǎn)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • maven在IDEA下載依賴包速度慢的問題解決

    maven在IDEA下載依賴包速度慢的問題解決

    這篇文章主要介紹了maven在IDEA下載依賴包速度慢的問題解決方案,本文通過圖文結(jié)合的形式給大家分享解決方案,供大家參考,需要的朋友可以參考下
    2024-01-01
  • Java?Timer與TimerTask類使程序計(jì)時(shí)執(zhí)行

    Java?Timer與TimerTask類使程序計(jì)時(shí)執(zhí)行

    這篇文章主要介紹了Java定時(shí)器中的Timer和TimerTask的原理。Timer主要用于Java線程里指定時(shí)間或周期運(yùn)行任務(wù),它是線程安全的,但不提供實(shí)時(shí)性(real-time)保證。接下來就跟隨小編一起深入了解Timer和TimerTask吧
    2022-02-02
  • SpringBoot實(shí)現(xiàn)其他普通類調(diào)用Spring管理的Service,dao等bean

    SpringBoot實(shí)現(xiàn)其他普通類調(diào)用Spring管理的Service,dao等bean

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)其他普通類調(diào)用Spring管理的Service,dao等bean,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java如何使用ConfigurationProperties獲取yml中的配置

    Java如何使用ConfigurationProperties獲取yml中的配置

    這篇文章主要介紹了Java如何使用ConfigurationProperties獲取yml中的配置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java和Ceylon對(duì)象的構(gòu)造和驗(yàn)證

    Java和Ceylon對(duì)象的構(gòu)造和驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了Java和Ceylon對(duì)象的構(gòu)造和驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Win10系統(tǒng)下配置java環(huán)境變量的全過程

    Win10系統(tǒng)下配置java環(huán)境變量的全過程

    這篇文章主要給大家介紹了關(guān)于Win10系統(tǒng)下配置java環(huán)境變量的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • springboot接收前端參數(shù)的四種方式圖文詳解

    springboot接收前端參數(shù)的四種方式圖文詳解

    Spring Boot可以通過多種方式接收前端傳遞的數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于springboot接收前端參數(shù)的四種方式,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 基于Jenkins自動(dòng)打包并部署docker環(huán)境的操作過程

    基于Jenkins自動(dòng)打包并部署docker環(huán)境的操作過程

    這篇文章主要介紹了基于Jenkins自動(dòng)打包并部署docker環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 一文帶你了解Java8?Stream流處理中的收集器技巧

    一文帶你了解Java8?Stream流處理中的收集器技巧

    Java?8?引入的?Stream?極大地簡化了集合數(shù)據(jù)的處理,提供了一種現(xiàn)代、函數(shù)式的方式來處理數(shù)據(jù),本文將深入探討?Java?8?Stream?中的收集器,希望對(duì)大家有所幫助
    2023-08-08

最新評(píng)論