java 写一个抽奖算法 每个奖品都设置有中奖概率 按照每个奖品的中奖概率进行抽奖
时间: 2024-02-12 18:04:24 浏览: 154
好的,下面是一个 Java 抽奖算法的示例代码,假设奖品信息已经保存在一个数组中,每个奖品都有自己的中奖概率。我们可以先计算出所有奖品的中奖概率之和,然后按照每个奖品的中奖概率占总概率的比例,生成一个随机数,根据随机数的大小来决定中哪个奖品。
```java
import java.util.Random;
public class Lottery {
public static void main(String[] args) {
String[] prizes = {"一等奖", "二等奖", "三等奖", "谢谢参与"};
double[] probabilities = {0.01, 0.05, 0.1, 0.84};
double sumProbability = 0.0;
for (double p : probabilities) {
sumProbability += p;
}
Random random = new Random();
double luckyNumber = random.nextDouble() * sumProbability;
double currentProbability = 0.0;
for (int i = 0; i < prizes.length; i++) {
currentProbability += probabilities[i];
if (luckyNumber < currentProbability) {
System.out.println("恭喜您获得了" + prizes[i]);
break;
}
}
}
}
```
在上面的代码中,我们先创建了一个奖品数组和一个概率数组,分别表示不同奖品和对应的中奖概率。我们遍历概率数组,计算出所有奖品的中奖概率之和。接着,我们使用 Java 的 Random 类生成一个随机数,乘以总概率之和,生成一个在 0 到总概率之间的随机数。最后,我们遍历奖品数组和概率数组,累计每个奖品的中奖概率,当随机数小于等于当前累计概率时,就中了该奖品。
阅读全文