package Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
public class MontyHallProblem {
public static void main(String[] args) {
// 不换门中奖次数
int y = 0;
// 换门中奖次数
int n = 0;
for (int i = 0; i < 1000000; i++) {
Random rand = new Random();
// 假设 有 1 2 3三个奖品,
// 生成1到3(包含)之间的随机整数
// 代表我选择的奖品位置
int 我的选择 = rand.nextInt(3) + 1;
// 生成1到3(包含)之间的随机整数
// 代表实际的奖品位置
int 奖品位置 = rand.nextInt(3) + 1;
if (奖品位置 == 我的选择){
// 不换门的情况下
// 如果相等就中奖,进入到if分支的概率是1/3
y ++;
}else {
// 假如我没中奖,那么换门肯定就回中奖,因为主持人已经公布了一个空门,此时我不会再选择空门
// 所以从if 和else里面就能看出来 进入到else分支的概率是2/3
n++;
}
}
String[] arr0 = {"奖", "空","空"}; // 最开始的时候选中奖品的概率是1/3
// 假设我们失始终选择第1扇门,概率则是1/3
String[] arr1 = {"中(不换门)", "不中","不中"}; // 假设我们第一次就选中了,且没有换门
// 假设我们每次都换门,实际上就是2选1,因为错误答案已经被我们排除了,这个答案主持人已经告诉过你了,所以你不会再选
String[] arr4 = {"不中", "中","不中(你不会选这一扇门)"}; // 相当于是2选1,也就是2/3,另外一个已经排除的相当于于是被打包选中了(附送给你了)
System.out.println(y);
System.out.println(n);
}
}
三门问题,java代码,最简单的java代码
于 2024-04-24 04:37:51 首次发布