趣味编程,java求证“三门问题”
三门问题,也称为蒙提霍尔问题(Monty Hall Problem)。
题意如下:
假如你参加一档选秀节目,节目中一共有三道关闭着的门,其中一扇门后面是车另外两扇门后面是羊,主持人能看到后面是什么,现在让你选,只要你选中的门后面有车,车就送给你。
现在你选中一扇门但不打开,主持人在剩下两扇门中打开一扇后面为羊的门(主持人知道所有门后面的情况),现在只剩下两扇门,主持人再给你一次选择的机会,问题来了,为了拿到车,你是继续坚持原来的选择,还是换一扇门?
一开始作者认为选择哪一道门得车的概率看起来好像都是1/2,但答案是换一道门的概率为2/3。于是作者走上代码求证的道路。
示例代码如下:
import java.util.*;
class TestSanMen{
private boolean flag; // true为车 false为羊
private int doorNumber; // 门牌号 1 、2 、3
public TestSanMen(int random,boolean flag){
this.doorNumber = random;
this.flag = flag;
}
public boolean getFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public int getDoorNumber() {
return doorNumber;
}
public void setDoorNumber(int doorNumber) {
this.doorNumber = doorNumber;
}
}
public class SanMenQuestion {
public static void main(String