Skip to content

Instantly share code, notes, and snippets.

@Jessime
Last active February 20, 2016 04:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Jessime/3ae04efe4fef3ab66279 to your computer and use it in GitHub Desktop.
Save Jessime/3ae04efe4fef3ab66279 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Will Someone Be Sitting In Your Seat On The Plane?\n",
"\n",
"This riddle was originally posted at:\n",
"\n",
"http://fivethirtyeight.com/features/will-someone-be-sitting-in-your-seat-on-the-plane/"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prompt\n",
"\n",
"There’s an airplane with 100 seats, and there are 100 ticketed passengers each with an assigned seat. They line up to board in some random order. However, the first person to board is the worst person alive, and just sits in a random seat, without even looking at his boarding pass. Each subsequent passenger sits in his or her own assigned seat if it’s empty, but sits in a random open seat if the assigned seat is occupied. What is the probability that you, the hundredth passenger to board, finds your seat unoccupied?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Creating a simulation"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import random"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"class Simulation(object):\n",
" \n",
" def __init__(self):\n",
" self.open_seats = set(range(100))\n",
" self.occupied_seats = set()\n",
" self.your_seat_number = random.choice(list(self.open_seats))\n",
" self.your_seat_free = True\n",
" self.other_people = set(range(100))\n",
" self.other_people.remove(self.your_seat_number)\n",
"\n",
" def sit_in_seat(self, seat_number):\n",
" \"\"\"When a seat is sat it, it moves from open to occupied.\"\"\"\n",
" self.open_seats.remove(seat_number)\n",
" self.occupied_seats.add(seat_number)\n",
" \n",
" def pick_random_seat(self):\n",
" \"\"\"The first person, and all other people with occupied seats, sit is a random seat.\"\"\"\n",
" chosen_seat = random.choice(list(self.open_seats))\n",
" self.sit_in_seat(chosen_seat)\n",
" \n",
" def pick_first_seat(self):\n",
" \"\"\"The first person has different rules than everyone else.\n",
" He automatically picks his seat at random.\"\"\"\n",
" self.pick_random_seat()\n",
" first_person_number = random.choice(list(self.other_people))\n",
" self.other_people.remove(first_person_number)\n",
" \n",
" def pick_other_seats(self, person):\n",
" \"\"\"The 98 people in the middle all follow the same rule.\n",
" If their seat is open, they will sit in that seat.\n",
" Otherwise, they'll pick a random seat to sit in.\"\"\"\n",
" if person in self.open_seats:\n",
" self.sit_in_seat(person)\n",
" else:\n",
" self.pick_random_seat()\n",
" \n",
" def simulate(self):\n",
" \"\"\"A single simulation consists of three steps.\n",
" 1. Pick the first seat at random.\n",
" 2. Seat all the other people according to rules.\n",
" 3. Check if your seat is open.\"\"\"\n",
" self.pick_first_seat()\n",
" \n",
" for person in self.other_people:\n",
" self.pick_other_seats(person)\n",
" \n",
" if self.your_seat_number not in self.open_seats:\n",
" self.your_seat_free = False\n",
" return self.your_seat_free"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Running a bunch of simulations\n",
"\n",
"To get the probability of your seat being free, we need to run the simulation a large number of times. The fraction of the time that your seat is free over the course of all the trials is equivalent to the probability that it'll be free for any given run."
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from tqdm import trange"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def run_bunch():\n",
" number_of_simulations = 10000\n",
" sucesses = 0\n",
" for i in xrange(number_of_simulations):\n",
" if Simulation().simulate() == True:\n",
" sucesses += 1\n",
" return sucesses/float(number_of_simulations)"
]
},
{
"cell_type": "code",
"execution_count": 66,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.49789"
]
},
"execution_count": 66,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"run_bunch()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Runing a bunch of bunches\n",
"\n",
"Instead of running 10,000,000 times, it might be more informative (or at least visually nicer) to get a distribution of probabilities which can then be plotted. "
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import seaborn as sns\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"plt.style.use(\"ggplot\")\n",
"plt.rcParams['figure.figsize'] = [9.0, 6.0]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"results = [run_bunch() for i in trange(10000)]"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAGSCAYAAAAW+kAUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGXexvHvmTRCEgKBEAgklFACpBCqVJEiFsTyrrsr\noq5if1lde6OsZSk23BVsq6CLvq6IFVQUBZTepHekhYQWegip87x/DBkJSWCAZE4muT/XNdckMyfn\n3Gcm5ZenHcsYYxARERHxUQ67A4iIiIhcDBUzIiIi4tNUzIiIiIhPUzEjIiIiPk3FjIiIiPg0FTMi\nIiLi01TMVCG33HIL8fHx7ltKSgoDBw7klVdeISMjo8i2X3zxBa1atWLfvn1lmqF3794MHz4cgM8/\n/5z4+PgyP0ZaWhrx8fFMmzatTPdbXr788ksuueQSkpOTS3wtCs/n9Fvr1q3p0aMHI0aM4MiRIxed\n4fXXX6dNmzYXvZ/T39/SxMfH89ZbbwHFvwduueUW7rjjjlK/9qmnnqJ///4XnbM0+/bto127dvzj\nH/8o8fnvv/+e+Ph4Zs+eXWbH/PTTT7n88ssB2LVrF/Hx8Xz77bcAjBs3jqSkpHPuY9euXQwfPpze\nvXuTmJhISkoKN954I5MnT6agoKDMshaaNGkSrVu3ZuPGjSU+f9ddd9GnTx9ycnLK/NieSE1NZcSI\nEfTt25ekpCRSUlL485//zPTp023JI+VPxUwV07FjRxYsWMD8+fP56quvuPfee1mwYAEDBw5kw4YN\n7u2uvvpq5s2bR1RUlEf7/fbbb7nlllvOud1nn33Gk08+CYBlWViWdWEncppVq1bRu3dv9+fR0dHM\nnz+/XP/olaVXX32VpKQkvvvuOyIjI0vdbuTIkcyfP5/58+fz448/MmLECObOnctdd9110RnK6r3w\nxPz58/nLX/5S4nEnTJjAP//5T/fnd955J19++aX782eeeYZPPvmk3LJFRUXxv//7v3z88cds3bq1\nyHO5ubm8+OKL9O7dm8suu6xMj1vaa+/J+7Jw4UKuvfZaMjIyGDVqFD/88AMff/wxffr04aWXXuLe\ne+897zzDhg1zF5wlufXWW4mLi+OFF14o9tysWbOYN28ew4YNIygo6LyPfbEOHDjA4MGD2bNnDy+9\n9BIzZ87k//7v/0hISODRRx9l6tSpZX7MW265xV2Aij387Q4g3hUQEEBERAQAtWvXJjY2lssvv5w7\n77yToUOHMmPGDAICAggMDKR27doe73fFihUe/TGsVavWBWf39NiWZZ1XdrsdPXqUpKQkoqOjz7pd\naGhokfOKjo7G4XAwdOhQfv31V9q1a1feUcvE2d6bGjVquD82xrBmzRoGDBjgfiw0NLRcswHcdttt\nfPHFF/zjH/9g0qRJ7sffeecdDh06xLBhw8o9g6dOnDjBI488Qp8+fXj55Zfdj9evX5/4+Hji4uIY\nNmwYK1asICUlxeP9rlq1ioYNG5b6vJ+fHyNGjOCWW27hm2++4eqrrwZcBd/YsWPp1atXmRd8npo+\nfToZGRnMmDGD4OBgwFWkDhs2jBMnThT5p60sFBQUsHbt2jLdp5w/tcwI/v7+PP3006SlpTFjxgyg\nePP/+vXrueOOO+jcuTMpKSn84Q9/cDe1P/XUU0yePJklS5bQqlUrvvzyS5YsWUJ8fDzfffcdl19+\nubvVpqRuiG3btjFo0CCSkpK47LLLmDJlivu5J5980t0EX+jbb78lPj6e9PR0xo8fz5gxY0hLS6NV\nq1aMHz++xG6mGTNmcP3115OUlETHjh25//772blzp/v5p556ikGDBjF37lwGDhxI27Ztueaaa5g3\nb557m9TUVIYOHUrXrl1JTk7mmmuu4bPPPjvra5uWlsZf//pXOnXqRGJiIgMHDnTnKsyZm5vL+PHj\nadWqFenp6Z69aae0bNkSYwx79+4tch5vv/027dq1c+fbsGEDQ4YMoV27diQnJ/OnP/2pyLkVWrly\nJddddx2JiYn079+fn376yf1cXl4eY8eO5dJLLyUhIYFevXoxatSoErsS3njjDbp3705ycjJ33303\nBw4ccD93ejfTmU7vZmrVqhXHjh3jySefpFWrVkDx74fMzEyGDx9Onz59SE5O5vrrry/WBfThhx9y\n1VVXkZycTJcuXfjb3/5WJM+Z/P39GT58OAsXLmTmzJkApKen8+6773L33XcXKTqzs7N54YUX6NGj\nBwkJCfTp04d//etfOJ1OoHi3UaF+/fqdszvOE9OnT+fIkSM88sgjJT7fr18/Fi5cWKSQKSw4+vfv\nT1JSEldffXWR1q9LL72UrVu38tprr521q7ljx44MGDCAl156iezsbADef/999u3bV6zgW7NmDbff\nfjspKSm0bduWm266iUWLFrmff/nll4sVW4W/Q1avXg3AK6+8wuWXX86UKVPo1KkTb7/9dom5cnNz\n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\n7vc3IiKC6OhoPv30UzZv3szatWsZMWLEOdcU8lRgYCD//Oc/2bRpE7feeitz5swhLS2N3377jalT\np/I///M/bNq0yT3zp169elx11VWMHTuWn376ibS0NObOncvgwYMZPXq0e781atRgxYoVbNq06YK6\nRE/3xz/+EX9/fx577DE2b97Mpk2b3LME//znPwO/F4ZvvvkmqampTJ8+nblz517Q8e677z7mzJnD\no48+yrJly0hLS2Pz5s28++67vPHGG9x8883UqFGDBg0acMUVVzB69Ghmz55NWloav/zyCzfffDMv\nvvgiAMnJyRQUFPDuu++SlpbGRx99xK+//kpUVBTr16/n0KFD7u+jRYsWsXHjRvfsR/EudTNVMcuW\nLaNHjx6A6z/VevXq0bt3b+65555SZy7ExcUxYcIE3nzzTSZOnIhlWTRp0oRXXnnF/Z/9oEGDWLZs\nGTfffDMPPfQQrVu3LnWq5ZkL3I0YMYJRo0axfv16ateuzZgxY9wtM9dccw0rV650rwzbu3dvHn30\n0SKrml5//fX88MMP3H777QwaNIhbb721yDG6dOnCP//5TyZMmMCkSZMIDg6me/fuPP7440Vmp5Sk\ncD/h4eFMnDiRcePGcdNNN5Gfn09MTAxPPPFEqf3ngYGB7qneQ4YMITc3l+bNm/Pmm2/SqVOnUl+T\ns+W4EBEREfznP/9h7Nix7j8eCQkJvP/++zRu3Ni9XWhoKA899BB///vf2bZtGw0bNmT8+PHugdAv\nv/wyI0aM4IYbbqBRo0Y8+eST1K9fnyVLljBo0CC++eYbLMviqquuIiwsjMGDB3PixAm6devGyJEj\nPT7fwueCgoIYMmQIH330EbNnzy62/ge4/vi9+OKLPProoxw9epR69epx2223cffddwPw4IMP4nQ6\nee6558jIyKBGjRp06NCh2HTyszlb1tGjR/PSSy+5LysRHR3NQw895F7hGFxjrZ599ln++Mc/0qBB\nAx5//HHeeeedsx7vzJ+Rs0lISGDatGm88847jB49mr179xIUFETDhg3p27cvgwcPLvKzPXr0aMaN\nG8dzzz3HwYMHqV27NgMHDuSvf/2re5t77rmH119/ncGDBzNp0iSPWhJLyxkVFcUHH3zA2LFj3d2x\nycnJTJ482d1t2q1bN+666y6mTJnC+++/T5cuXXj66aeLFNuevBYAAwYMoG7duvznP//hscce4+DB\n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\n4w327NlDTU0NKSkpPPDAA8TExLheZ/v27axYsYLi4mJSUlJIT08nLCwMgFWrVvHPf/6TwsJCoqOj\nGTt2LDfccMNZmZYtW8b69esJDg5m9OjRjBkzBrCOJI0ZM4ZRo0adtf3KlSvJysriqaeeYsKECVRV\nVfHYY48xevRoPv/8c9LT0xkwYIBr+wULFhAbG8v999/f7P+eQojmJ+fMCCGarLa21jX19PXXXzN5\n8mRmzZoFwLPPPktAQAAvvvgiL730ErW1tSxatOis/b/88kvmz5/PCy+8QH5+PkuXLgVgz549vPnm\nmzz88MMsW7aMCRMmsHjxYo4dO+bad8eOHSQkJPDaa68xefJkVqxYwa5duxrMe+YidXXn0TzzzDPc\nc889DB48mA0bNri+7nA42LFjx1mr+QohPJs0M0KIRnM6naxevZpTp065FsNMSkriiiuuACAnJ4eD\nBw8yfvx4goODCQsLY9y4cezevZuioiLX64wZM4bw8HCioqIYNWoUWVlZAPTq1YslS5bQtWtXANLS\n0ggKCuLQoUOufdu0acPIkSPx9/cnLS2NHj16sHXrVrdrGj58OFlZWVRUVACwdetW2rZt66pJCOH5\nZJpJCNGgpUuXsnz5cgACAwPp0qULTzzxBO3atQMgLi7Ote2JEycICQkhOjra9VxCQgIA+fn5rufO\nPNcmPj6ekpISamtrAXj33XfZvHkzJSUlaK2pqamhurq63n3r9i8oKHC7viuvvJLo6Gg2bdrEjTfe\nyJYtWxg6dKjbryeEaHnSzAghGjRx4kTXCcD1qZtuAqipqbngdmdO9Zz5sdYawzDw8/Pj7bffZuPG\njTz66KN0794dsE5APpNhnH1AWWtNYGBg44q5gGHDhvHVV18xdOhQtm3bxm9+85tLej0hRMuSaSYh\nRIPOPAH4YuLj46msrKSwsND13NGjR1FKER8f73ouLy/P9fHx48ddJwcfOHCAa665xtXInDhxwjX9\nU9++dduceXKxO4YPH86ePXvIzMykc+fOZ2UVQng+aWaEEM0mKSmJxMREli9fjsPhoLi4mJUrV5KW\nlkZERIRru08++YSKigqKi4tZs2aN60qi+Ph4cnJycDqd5OXlsXz5cmJiYs6aRvrxxx/JzMyktraW\nbdu2ceDAAQYOHNjojHVHcfLy8nA4HAC0a9eO5ORk3nrrLTnxVwgvJNNMQogLOnM6qLGmT5/O66+/\nTnp6OoGBgfTr14977733rNccNmwYM2bMoLS0lNTUVO6++24AbrvtNhYuXMjkyZNp3749kydPZvv2\n7bz//vuuZqh///4cOnSIpUuXEhwczH333UeXLl1cr32xzG3atGHgwIEsXLiQESNGMGnSJMA6OrNk\nyRKGDBnS5JqFEPZSuinHkIUQopV67733yM3N5eGHH7Y7ihCiiWSaSQjh8/bv38+qVasYO3as3VGE\nEG6QaSYhhE978sknycnJ4Z577qFbt252xxFCuEGmmYQQQgjh1WSaSQghhBBeTZoZIYQQQng1aWaE\nEEII4dWkmRFCCCGEV5NmRgghhBBeTZoZIYQQQni1/weMtrUSWSI9QgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f8ca52dc390>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(results, bins=30)\n",
"plt.title('Distributions of Probabilities You\\'ll Get Your Seat', fontsize=16)\n",
"plt.xlabel('Probability', fontsize=14)\n",
"plt.ylabel('Density', fontsize=14)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Conclusion\n",
"\n",
"More trials would smooth out the graph a bit more, but it's pretty obvious that the simulation is saying that your seat will be free 50% of the time."
]
}
],
"metadata": {
"toc": {
"toc_cell": false,
"toc_number_sections": false,
"toc_threshold": 4,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment