Monty Hall Problem
JavaScript
MontyHall(true);
MontyHall(false);
function MontyHall(isHostSelecting) {
var selectedDoor;
var winningDoor;
var remainingDoor;
var remainingWinCount = 0;
var selectedWinCount = 0;
var trialCount = 0;
for(var i = 0; i < 100000; i++) {
winningDoor = getRandomInt(1,3);
selectedDoor = getRandomInt(1,3);
if(selectedDoor != winningDoor && isHostSelecting) {
remainingDoor = winningDoor;
} else {
remainingDoor = getRandomInt(1,3);
while (remainingDoor == selectedDoor) {
remainingDoor = getRandomInt(1,3);
}
}
if(remainingDoor == winningDoor || selectedDoor == winningDoor) {
trialCount++;
if(remainingDoor == winningDoor) {
remainingWinCount++;
} else {
selectedWinCount++;
}
}
}
var remainingPercentage = remainingWinCount / trialCount * 100;
var selectedPercentage = selectedWinCount / trialCount * 100;
console.log('Total Trials: ' + trialCount);
console.log('Remaining Wins: ' + remainingPercentage + '%');
console.log('Selected Wins: ' + selectedPercentage + '%');
}
function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}