{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The Monty Hall Problem\n",
"\n",
"***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"See the [Wikipedia entry](https://en.wikipedia.org/wiki/Monty_Hall_problem) for a summary of the problem.\n",
"\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Random door selection\n",
"\n",
"***\n",
"\n",
"Here's some code to pick a door at random.\n",
"\n",
"See [Real Python's Generating Random Data in Python](https://realpython.com/python-random/) for more information."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"blue\n"
]
}
],
"source": [
"# Python provides a library called random to generate pseudo-random numbers and do stuff with them.\n",
"import random\n",
"\n",
"# The three doors in a list.\n",
"doors = ['red', 'green', 'blue']\n",
"\n",
"# Pick a random door.\n",
"print(random.choice(doors))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"## Checking the randomness\n",
"\n",
"***\n",
"\n",
"The pick is meant to give a one third probability to each door. Let's pick 10,000 doors are see if that looks correct."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"First ten items: ['green', 'green', 'red', 'red', 'green', 'red', 'green', 'green', 'blue', 'red']\n",
"Out of the 10000: 3324 were red, 3357 were green, and 3319 were blue.\n"
]
}
],
"source": [
"# 10,000 random doors.\n",
"no_doors = 10000\n",
"tenthous = [random.choice(doors) for i in range(no_doors)]\n",
"\n",
"# Count the number of each colour.\n",
"red = tenthous.count('red')\n",
"blue = tenthous.count('blue')\n",
"green = tenthous.count('green')\n",
"\n",
"print(\"First ten items: \", tenthous[:10])\n",
"print(f\"Out of the {no_doors}: {red} were red, {green} were green, and {blue} were blue.\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" \n",
"\n",
"Let's plot it and see that each door is picked about a third of the time."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"# We'll just use pyplot for plotting.\n",
"import matplotlib.pyplot as plt\n",
"# Change the way plots look.\n",
"plt.style.use('seaborn')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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4qKLLsrjjz9ey2cYqF69+y1btuT3v/99rr766tx0003p6emx+z7wmc98Jl/72td6Hw8ePNi57ycn271z3z+mT5+ezs7OJMmuXbsyatQo576fnGz3fX3uT/uo7unpyfDhw3sfDx48OMeOHatxojefYcOG5dprr83999+f2267LTfccEOqqkpTU1OSpKWlJfv27UtPT0/vLSL/eb6np6eusQe0iy++OM3N/3v31evZ98uf/89rOXWv3v2kSZPyjW98Iz/60Y9y1lln5bvf/a7d94GWlpYMHz48PT09uf766zNv3jznvp+cbPfOff9pbm7OggUL0tnZmYsvvti570ev3n1fn/vTPqqHDx+e/fv39z4+ceLEK/5CpFx7e3s+97nPpampKe3t7TnzzDOzd+/e3v++f//+vOMd7/ivX4v9+/e/4iDyxg0a9L+/FV9r3y9//j+v5Y379Kc/nYkTJ/b++Mknn7T7PvLvf/8711xzTS677LJ89rOfde770at379z3r2XLluXhhx/OokWLcvjw4d7nnfu+9/Ldf/SjH+3Tc3/aR/WUKVPy2GOPJUk2bdqU8847r+aJ3nweeOCBfOtb30qSPPfcc+np6cm0adOyfv36JMljjz2WD37wg5k0aVI2btyYw4cPZ9++fdmxY4dfjwZ53/ved8r7njJlSh599NHe137gAx+oc/QB79prr83mzZuTJI8//nje//73230f2LNnT2bPnp358+fn85//fBLnvr+cbPfOff/4xS9+kdWrVydJ3va2t6WpqSkTJ0507vvByXb/la98pU/PfVNVVVXffaRy//nXP7Zv356qqrJ06dKcc845dY/1pnLkyJHceOON2bVrV5qamnLDDTdk5MiRWbRoUY4ePZrx48dnyZIlGTx4cNauXZuf/vSnqaoq1113XS6++OK6xx+wdu7cma9//etZu3Ztnn766VPe98GDB7NgwYJ0d3dnyJAhWblyZdra2ur+OAPKy3e/devWdHZ2ZsiQIRk1alQ6OzszfPhwu2+wJUuW5KGHHsr48eN7n7v55puzZMkS576PnWz38+bNy/Lly537PnbgwIHceOON2bNnT44dO5YvfelLOeecc/x53w9OtvsxY8b06Z/3p31UAwDA6e60v/0DAABOd6IaAAAKiWoAACgkqgEAoJCoBgCAQqIaAAAKiWoAACj0fwDNh1t0/b+bmgAAAABJRU5ErkJggg==\n",
"text/plain": [
"