java实现红包要多少钱_java实现红包的分配算法
個人推測,微信紅包在發出的時候已經分配好金額。比如一個10元的紅包發給甲乙丙三個人,其實在紅包發出去的時候,已經確定了第一個會領取多少,第二個會領取多少金額。
而不是在領取的時候才計算的。下面貼出實現方法:
public static void main(String[] args) {
// 輸入總金額
double amt = 66.66;
// 輸入紅包個數
int luckPackage = 12;
// 總下標數
int allIndex = (int)(amt * 100);
// 根據紅包金額和紅包個數創建下標集合
List list = new ArrayList();
// 默認添加最小下標
list.add(0);
// 默認添加最大下標
list.add(allIndex);
// 根據紅包個數,獲取各個下標
while(list.size() < luckPackage + 1){
Random rnd = new Random();
int r = rnd.nextInt(allIndex);
// 避免下標重復
if(list.contains(r)){
continue;
}
// 添加下標
list.add(r);
}
// 從小到大排序
Collections.sort(list);
// 紅包集合
List lpAmtList = new ArrayList<>();
for(int i=0; i
// 每個紅包金額 = 相鄰下標值的差
int lpAmt = list.get(i+1) - list.get(i);
// 添加紅包金額
lpAmtList.add(lpAmt);
}
// 紅包金額
System.out.println(lpAmtList);
// 運氣王
System.out.println("本輪中第" +( lpAmtList.indexOf(Collections.max(lpAmtList)) + 1) + "人手氣最佳");
}
總結
以上是生活随笔為你收集整理的java实现红包要多少钱_java实现红包的分配算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原神重生之花成就怎么获得
- 下一篇: 底量超顶量超级大黑马指标源码_底量超顶量