随机红包代码示例
RandomOpen.java
package cn.itcast.day09.Demo02;
import cn.itcast.day09.red.OpenMode;
import java.util.ArrayList;
import java.util.Random;
public class RandomOpen implements OpenMode {
@Override
public ArrayList<Integer> divide(int totalMoney, int count) {
ArrayList<Integer> list=new ArrayList<>();
//totalMoney是总金额,tontalCount是总个数,不变
//额外定义两个变量,分别代表剩下的钱和份数。
//定义一个随机生成对象。
Random r=new Random();
int leftMoney=totalMoney;
int LeftCount=count;
//随机发前n-1个,最后一个不随机
for (int i = 0; i < count; i++) {
//按照公式生成随机金额
int money = r.nextInt(totalMoney / count * 2) + 1;
list.add(money);//将一个随机红包放入集合
leftMoney-=money;//剩下的金额越发越少
LeftCount--;//剩下的红包个数也是越发越少,递减下去
}
list.add(leftMoney);
return list;
}
}