请用java编写:A针脚编号(密码) 长度为4的是从集合中随机选择四位数字{0,1,2,……,9}已替换。找出事件发生的概率:A: 引脚编号为偶数B: 密码只有偶数C: 所有数字都是唯一的D: 引脚号至少包含一个1
时间: 2024-02-16 15:03:40 浏览: 42
以下是使用 Java 编写的概率计算代码:
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class ProbabilityCalculator {
public static void main(String[] args) {
int totalCases = 1000000; // 总样本数
int eventACount = 0; // 事件 A 发生的次数
int eventBCount = 0; // 事件 B 发生的次数
int eventCCount = 0; // 事件 C 发生的次数
int eventDCount = 0; // 事件 D 发生的次数
Random random = new Random();
for (int i = 0; i < totalCases; i++) {
Set<Integer> pinSet = new HashSet<>(); // 存储引脚编号
Set<Integer> passwordSet = new HashSet<>(); // 存储密码
// 随机生成 4 个数字作为引脚编号和密码
for (int j = 0; j < 4; j++) {
int digit = random.nextInt(10);
pinSet.add(digit);
passwordSet.add(digit);
}
// 事件 A:引脚编号为偶数
if (pinSet.stream().anyMatch(digit -> digit % 2 == 0)) {
eventACount++;
}
// 事件 B:密码只有偶数
if (passwordSet.stream().allMatch(digit -> digit % 2 == 0)) {
eventBCount++;
}
// 事件 C:所有数字都是唯一的
if (pinSet.size() == 4 && passwordSet.size() == 4) {
eventCCount++;
}
// 事件 D:引脚号至少包含一个1
if (pinSet.contains(1)) {
eventDCount++;
}
}
// 计算概率并输出
double probabilityA = (double) eventACount / totalCases;
double probabilityB = (double) eventBCount / totalCases;
double probabilityC = (double) eventCCount / totalCases;
double probabilityD = (double) eventDCount / totalCases;
System.out.println("事件 A 的概率为:" + probabilityA);
System.out.println("事件 B 的概率为:" + probabilityB);
System.out.println("事件 C 的概率为:" + probabilityC);
System.out.println("事件 D 的概率为:" + probabilityD);
}
}
```
注意:在代码中,我们使用了 Java 8 的 Stream API 简化代码。如果不熟悉 Stream API,可以将代码中的 `stream()` 和 `anyMatch()`、`allMatch()` 方法替换为传统的循环实现。
阅读全文