红包随机算法,给定一定的金额,一定的人数,保证每个人都能随机获得一定的金额。...
m0_66785873:
import java.math.BigDecimal;
import java.util.Objects;
public class RedEnvelopStrongerMain {
// 最佳手气金额不能超过最大金额的90%
public static final BigDecimal BEST_LUCK_PERCENT = new BigDecimal(0.9);
// 单人每次最小抢到的金额,默认为1分钱
public static final BigDecimal ONE_PERSON_MIN_DRAW_AMOUNT = new BigDecimal(1);
/**
* 拆红包方法
* 红包金额分配算法
*
* @param totalAmount 红包总金额
* @param personQuantity 抢红包总人数
*/
public void redEnvelopLuckyDraw(BigDecimal totalAmount, Integer personQuantity) {
if (Objects.isNull(totalAmount) || totalAmount.compareTo(BigDecimal.ZERO) = 分配人数 * 每人最小中奖金额
if (totalAmount.compareTo(ONE_PERSON_MIN_DRAW_AMOUNT.multiply(personNum)) < 0) {
System.out.println("红包总金额不能小于(中奖人数*单人
|