请用java编写:五个红色的球和三个白色的球随机排列成一排。找出以下情况的概率:(a) 两端都是相同的颜色(b) 三个白色的球在一起。
时间: 2024-02-16 21:03:42 浏览: 9
以下是使用 Java 编写的概率计算代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ProbabilityCalculator {
public static void main(String[] args) {
int totalCases = 1000000; // 总样本数
int eventACount = 0; // 事件 A 发生的次数
int eventBCount = 0; // 事件 B 发生的次数
for (int i = 0; i < totalCases; i++) {
List<String> ballList = new ArrayList<>();
ballList.add("R");
ballList.add("R");
ballList.add("R");
ballList.add("R");
ballList.add("R");
ballList.add("W");
ballList.add("W");
ballList.add("W");
// 随机排列球
Collections.shuffle(ballList);
// 事件 A:两端都是相同的颜色
if (ballList.get(0).equals(ballList.get(1)) || ballList.get(6).equals(ballList.get(7))) {
eventACount++;
}
// 事件 B:三个白色的球在一起
if (ballList.containsAll(List.of("W", "W", "W"))) {
for (int j = 0; j < ballList.size() - 2; j++) {
if (ballList.subList(j, j + 3).equals(List.of("W", "W", "W"))) {
eventBCount++;
break;
}
}
}
}
// 计算概率并输出
double probabilityA = (double) eventACount / totalCases;
double probabilityB = (double) eventBCount / totalCases;
System.out.println("事件 A 的概率为:" + probabilityA);
System.out.println("事件 B 的概率为:" + probabilityB);
}
}
```
注意:在代码中,我们使用了 `List` 的 `subList()` 方法来寻找三个白色的球是否在一起。需要注意的是,`subList()` 返回的是原列表的一个视图,因此我们需要使用 `equals()` 方法来判断是否与 `List.of("W", "W", "W")` 相等。