Java版 微信紅包算法
private double[] divide(double totalMoney,int num,double minMoney){ double[] each = new double[num]; for(int i=0;i<num-1;i++){ //計算最大安全值,保證不會超出 。如果安全值越大,價格波動越大 .建議是平均值 double maxSafeMoney = (totalMoney - (num-1-i)minMoney) / (num-1-i); //隨機算出最小值,保證不低于最小值 each[i] = Math.random()(maxSafeMoney-minMoney)+minMoney; //計算當前剩下的錢 totalMoney = totalMoney - each[i]; } each[num-1] = totalMoney; return each; }@Test public void test3(){ double[] rs = divide(200,10,0.01); for(double each:rs){ System.out.format("%.2f\n",each); } }</pre>
結果:16.70 21.37 18.89 12.13 11.35 23.21 24.32 7.39 14.10 50.57
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!