public class ThreeGatesExp {
private int N;
public ThreeGatesExp(int N){
if(N <= 0)
throw new IllegalArgumentException("N must be larger than 0");
this.N = N;
}
public void run(boolean changDoor){
int wins = 0;
for(int i = 0; i < N; i ++){
if(play(changDoor))
wins ++;
}
System.out.println(changDoor ? "Change" : "Not Change");
System.out.println("winning rate: " + (double)wins/N);
}
private boolean play(boolean changeDoor){
// Door 012
//哪扇有奖品 哪扇选定的
int prizeDoor = (int)(Math.random() * 3);
int playerChoice = (int)(Math.random() * 3);
if( playerChoice == prizeDoor)
return changeDoor ? false : true;
else
return changeDoor ? true : false;
}
public static void main(String[] args) {
int N = 100000;
ThreeGatesExp exp = new ThreeGatesExp(N);
exp.run(true);
System.out.println("Hello world!");
exp.run(false);
}
}