随便写一个抽奖的小Demo drawList是奖品集合,里面有奖品中间的概率
private int randomDrawListIndex(List drawList) {
int random = -1;
// 总权重
int sumWeight = 10000;
double randomNumber = new SecureRandom().nextDouble() * sumWeight;
// 根据随机数在所有奖品分布的区域并确定所抽奖品
int d1 = 0;
int d2 = 0;
for (int i = 0; i < drawList.size(); i++) {
if (i == 0) {
d1 = 1;
} else {
d1 += drawList.get(i - 1).getProbNum();
}
d2 += drawList.get(i).getProbNum();
if (d1 <= randomNumber && randomNumber <= d2) {
random = i;
break;
}
}
return random;
}



