monty_hall_simulation


monty_hall_simulation, a Python code which simulates the "Let's Make a Deal" game in which Monty Hall has hidden a prize behind one of several doors, and the user wins the prize if the correct door is selected.

The player is asked to select one of the doors. Monty Hall then reveals what's behind one of the other doors, which is never the door hiding the prize. The player is then allowed to change their chosen door, or to stay with the original choice. If the user chose the correct door, the prize is awarded.

As it turns out, it is always to the advantage of the user to switch. There is a 1/N chance that they had chosen the correct door to start with, and if they stick with it, they have a 1/N chance of winning. There is an N-1/N chance that they chose the wrong door, followed by a 1/N-2 chance that they will pick the correct door from the remainder. As it happens, 1/N < (N-1)/N/(N-2).

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

monty_hall_simulation is available in a Python version.

Author:

Original Python code by Christian Hill. Modifications by John Burkardt.

Reference:

Related Data and codes:

brownian_motion_simulation, a MATLAB code which simulates Brownian motion in an M-dimensional region.

chuckaluck_simulation, a MATLAB code which simulates the Chuck-a-Luck gambling game.

duel_simulation, a MATLAB code which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.

fire_simulation, a MATLAB code which simulates a forest fire over a rectangular array of trees, starting at a single random location.

flies_simulation, a MATLAB code which simulates an experiment in which two flies land on a plate of radius 1. By repeating the experiment many times, the average distance between the flies is to be estimated.

fly_simulation, a Python code which simulates an experiment in which a fly lands on a plate of radius 1. By repeating the experiment many times, the average distance of the fly from the center is to be estimated.

full_deck_simulation, a MATLAB code which simulates a process in which a random card is drawn from a deck of 52, and then replaced, continuing until every card has been seen at least once.

high_card_simulation, a Python code which simulates a situation in which you see the cards in a deck one by one, and must select the one you think is the highest and stop.

percolation_simulation, a Python code which simulates a percolation system. A rectangular region is decomposed into a grid of MxN squares. Each square may be porous or solid. We are interested in a path of porous squares connecting the top and bottom, or the left and right boundaries. The original MATLAB code was written by Ian Cooper.

sir_simulation, a Python code which simulates the spread of a disease through a hospital room of M by N beds, using the Susceptible/Infected/Recovered (SIR) model.

snakes_and_ladders_simulation, a MATLAB code which simulates the game of Snakes and Ladders.

truel_simulation, a MATLAB code which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.

urn_simulation, a Python code which simulates the experiment of sampling K balls from an urn containing N balls of various colors.

Reference:

  1. Dianne OLeary,
    Models of Infection: Person to Person,
    Computing in Science and Engineering,
    Volume 6, Number 1, January/February 2004.

Source Code:


Last revised on 25 August 2022.