java 写一个抽奖算法 每个奖品有设置有中奖概率 按照每个奖品的中奖概率进行抽奖
时间: 2024-02-12 11:04:22 浏览: 181
好的,下面是一个简单的 Java 抽奖算法实现,假设奖品信息已经保存在一个 List 中,每个奖品都有自己的中奖概率。我们可以先计算出所有奖品的中奖概率之和,然后按照每个奖品的中奖概率占总概率的比例,生成一个随机数,根据随机数的大小来决定中哪个奖品。
```java
import java.util.*;
class Prize {
String name; // 奖品名称
double probability; // 中奖概率
public Prize(String name, double probability) {
this.name = name;
this.probability = probability;
}
}
public class Lottery {
public static void main(String[] args) {
List<Prize> prizes = new ArrayList<>();
prizes.add(new Prize("一等奖", 0.1));
prizes.add(new Prize("二等奖", 0.2));
prizes.add(new Prize("三等奖", 0.3));
prizes.add(new Prize("四等奖", 0.4));
double sumProbability = prizes.stream().mapToDouble(p -> p.probability).sum();
double random = Math.random() * sumProbability;
double current = 0.0;
for (Prize prize : prizes) {
current += prize.probability;
if (random < current) {
System.out.println("恭喜您获得了" + prize.name);
break;
}
}
}
}
```
在上面的代码中,我们先创建了一个 Prize 类来表示奖品信息,包括奖品名称和中奖概率。然后我们创建了一个奖品列表,将每个奖品的信息添加到列表中。接着,我们计算了所有奖品的中奖概率之和,并生成了一个随机数。最后,我们遍历奖品列表,累计每个奖品的中奖概率,当随机数小于等于当前累计概率时,就中了该奖品。
阅读全文