Java 抽奖 按照每个奖品中奖概率进行抽奖
时间: 2023-11-22 22:55:37 浏览: 286
java概率抽奖+数量配置dome.zip
5星 · 资源好评率100%
可以使用 Java 中的随机数生成器来实现按照每个奖品中奖概率进行抽奖的功能。
可以将每个奖品的中奖概率表示为一个小数,然后将这些小数相加得到总概率。然后,生成一个随机数,将其乘以总概率,然后用这个值依次减去每个奖品的中奖概率,直到这个值小于等于 0,就可以确定中奖的奖品。
下面是一个示例代码实现:
```java
import java.util.*;
public class Lottery {
public static void main(String[] args) {
Map<String, Double> prizes = new HashMap<>();
prizes.put("一等奖", 0.01);
prizes.put("二等奖", 0.05);
prizes.put("三等奖", 0.1);
prizes.put("谢谢参与", 0.84);
Random random = new Random();
double totalProbability = prizes.values().stream().mapToDouble(Double::doubleValue).sum();
double luckyNumber = random.nextDouble() * totalProbability;
double currentProbability = 0;
String prize = null;
for (Map.Entry<String, Double> entry : prizes.entrySet()) {
currentProbability += entry.getValue();
if (luckyNumber <= currentProbability) {
prize = entry.getKey();
break;
}
}
System.out.println("恭喜您获得了:" + prize);
}
}
```
这里使用了 Java 中的 Map 来存储奖品和中奖概率的对应关系,然后使用 Random 类生成随机数,计算中奖的奖品。
阅读全文