程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 微信隨機紅包算法代碼實例

java 微信隨機紅包算法代碼實例

編輯:關於JAVA

java 微信隨機紅包算法代碼實例。本站提示廣大學習愛好者:(java 微信隨機紅包算法代碼實例)文章只能為提供參考,不一定能成為您想要的結果。以下是java 微信隨機紅包算法代碼實例正文


頭幾天的一個早晨忽然想到微信紅包應當有一個隨機算法,就本身試著寫了下,也不曉得對纰謬,看了看網上的說法,似乎到如今為止官方也沒有給出一個確實的算法,只好在這裡獻丑了,先貼出代碼:

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

這裡一個根本思緒是如許的:起首算出紅包的均勻值,再經由過程一個隨機紅包數小於這個均勻值的紅包,當該紅包發完後,紅包總金額須要響應削減,同時從新盤算這個均勻值:新的總金額%(原總紅包數-1),直到最初一個紅包時,把一切的殘剩金額塞出來。

感激浏覽,願望能贊助到年夜家,感謝年夜家對本站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved