{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Birthday problem simulated\n", "\n", "Let's say we can't figure out how to formally calculate the probability that 2 people out of N have the same birthday (ignoring leap years). Not to worry: we can simulate it!\n", "\n", "First let's write a function to simulate the number of people who have the same birthday out of N:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "4" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import random\n", "from collections import defaultdict\n", "\n", "def num_people_same_birthday(n):\n", " bdays = defaultdict(int)\n", " for i in range(n):\n", " bdays[random.randrange(0, 365)] += 1\n", " return len([k for (k, v) in bdays.items() if v > 1]) \n", "\n", "num_people_same_birthday(60)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That doesn't give as an emperical probability though, we need to run some trials to do that." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.992" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def prob_n_people_have_same_birthday(n, *, num_trials):\n", " num_positive_trials = len([1 for i in range(num_trials) if num_people_same_birthday(n) > 0])\n", " return float(num_positive_trials) / num_trials\n", "\n", "prob_n_people_have_same_birthday(60, num_trials=1000)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that because the liklihood is high, we need 1000 trials to suss out that it's not 100%; here's what we get if we use 10 a couple times:\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prob_n_people_have_same_birthday(60, num_trials=10)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.0" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prob_n_people_have_same_birthday(60, num_trials=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Just to round out the \"fun\", let's see a bar chart of % of time we expect people to have the same birthday with groups ranging from 5 to 50 (counting by 5)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n4vdKdyyXKd15qlrlvxrtjwINaxJ3LrdXuqsljbedhl43LW6/WImItsepxu2AZCGqdWG1HDdOnXLt\nn//bdtyMm+7OtvdsmeYAjfdqT5XH/Wy3PRL8J2Mst/I5pQvHe9p+oNK7e7spPUZ1SsP01Ssn29l+\naMP4aanW0yP6TLOQ9bTQfesa1d6/bfCQIfIwTL26oH06IuYi4j+Vvml+m9LjnA8eZt581/00pRsW\nn4qIEwbMUnXm95gxs9umqp9+1jQy37D606ZxvZN2liNJkTp8/IHmP5c4ik7r3CG280LPEbfL9cSX\nlR7x/ndJz+iwperuttsu7h+hdJ0XSp+Rq1T73WGjJDTl67I2G2p9XO2vbdcnB6nPU06R+sX5XP5v\n9dRY9cTYep0HZpOqT6QOj4cWk8z7OoY49ruIATq1wLpzWFbLsZnPGY/M/+3qurEyN3iSBam240Zq\nuT6yvYfar0262B+qjvCeZfsBSn2Y3KqOGks32GA+q3onPtrr9qYqSbJ9qNI3REPzlV6v3fO7g73z\nbifpefm/vb0IrlHaqe/fMN9WSu8+DDJOul2reknftu9U86qO8J6t+ZPHQjq+q9IftSOvYdTfmWna\nTndRerStzULzVvX2uVNTa47t+6m5U7WJitRrb9X50Cvtxp5WX6l0EXGtUuccXfixpN8oHTfHtkzz\n9/l31IuBM5QeVbyDpBf2jszvJo79uGq+y3pmztdTNb/d/iMirm+Y/kLN9zb7DvfppMn2FvmJhMVw\nav59UtPFve2HqP8FeF8d7FtVYPmEhrxtJumlQ2TjUbbXe33G9t6a7/166HrVtQ4/G1Tfh7Xmbxz2\nW9amSj2A76LU2ePz+s8hKX3SR0pPRPV2dNW7/GHrcWm+frpfy/jnSmq76SZNtu4+Of8enZ8Aa9VT\n5rHr3DG3c/Wk1zBPjLTKF26nK72ffoakpzQ8JbGgJJQeH+5N15Jelf97VqzbQ/Unla6b7mW7737a\nsN9N67qs0QZcH1f7T9P1yTKl70tL/c+H1ZNhh9reV/M9cjc9MSZNrj6RJlsnSBPK+wKO/YXGAJNw\ncv4dte4cxQvyTflez1A6t61VcyPHQtz+RacF5LtVvnY5S2mb/n3LZK9qGS51sz+cqvT05L0kvT8P\n+3KkL4ot2IYezL9P6Z2iO0g6PT++KNsb236S0ruAUvpu4Lkty1ij1PPj0/JjTcoHwdeUWncvV/oO\nZd0Z+fefbFd3oqqL4bOUOqIYZJx0u1b1lHmfIe9Yf0kpX/dU6jDics1/cmHc9C3pSKeenTsTqTOp\n7+Tln5QvmGR7o/xeYr/ecqu8SdJhTRckQzhf85/p+KzT53FkexPbRygFh/066ZBGf9x82GVU3wF+\nkKR/tb1LzttWtl+j+UrrbRFxXRf5yq1Mb8z/fb7tN9jeOqe7g+0PK31ibuTPG+Y8Vi2cb7L9ovz4\naPXo7ReUvlO6ENXF0V9rPihsu2CSUk/gNyvdqT7L9kHVPp7rp/1sH6/Un8NiPZL3L5J+pfn68sCc\nH9s+TKnFuOmTM6NYyL5VXdg/1/bR1UW17fsoBf7DvALwR0mn2L69ZcL2nyj1WFx9O70tgGjyKdsn\n2T602l/zMndX6qRsM6V9dpivJbxH6amOSyQdkVsx+4qIryldGFnSqbaPde0VBtvb236y7S9rtM8v\nfl3pOL6v7fdUF2e272j7FUrn1qv6zN9V3d1Ul3xMKfjaXNLZtp/Ts+7vavso29/Uup9sW0idO852\nvkip1W7bvPyR2d5H6XpiW6XOWg+P5s9RLsQfJT3P9ptt3zGnu7NSuf5U6Xg9vj5DRJyv+Tr1A7bf\nUh3Lef472v4L25/R+kH1tK7L+tkQ6+PqOvJ1th9fy8++StdaD1G6Sd0q0udEf620f35aad//Wd5+\nTdNPqj6R5q+Zjqj2sy5NMO/jHPtdxACTMG7dOYrNlY7r++RlbmL7KEkfrPKQn+TtTL7ReKnStn/W\ngMmHWmTDsBV5+KNtn2x7Ryk9TWj7LUo3uNv6d1vw/pDr/U/l/1Zfblhwx3f1BBb0p3SnaE7S2SPO\nd26e78gB0z1E8++KzCmduG6s/f/Hkrbvk6+3KAV9c0q9HK6pzXutpEc0zLuH0jsW1XQ3Srou//s6\npUcqqnF36zDd5Xn8xX3K8/qGcY156VnPc3k9rpK0UtIBLev7bbXp37HAfePonnX4m5z+O4cp16B9\nRekzHdfX0rhO8z3ZX6H0ntmcpLUNy7yz0l2y6lOKf6jWzQjlO1zpYq++b96c/71S0tP7bM9Vedwj\nB6y71uOq3zKUWjfqebu69v+1Si0zHjVfQ+xvH6uNvy2nW6X5orwPzLXtf33S3ESpdata9q2a70n0\nZklPrKWzU8+8K/K4k/osf8uefekqSZsMyNNhtTxUx/mVOW9ztfzsNuz6y+N3b9tvh1hPD6it86qu\n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\nsafsYO4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 280, "width": 505 } }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "group_sizes = list(range(5, 55, 5))\n", "probs = [prob_n_people_have_same_birthday(n, num_trials=1000) for n in group_sizes]\n", "plt.xlabel(\"Group Size\")\n", "plt.ylabel(\"Prob\")\n", "plt.title(\"Probability that among given group size at least 2 people have the same birthday\")\n", "\n", "plt.bar(group_sizes, probs, width=2.5)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now let's see a histogram of the number of people with the same birthday among 60 people out of 1000 trials" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 255, "width": 376 } }, "output_type": "display_data" } ], "source": [ "plt.hist([num_people_same_birthday(60) for i in range(1000)])\n", "None" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The histogram shows that the probability of there being zero people is unlikely, hence the overall probability of there being at least 1 is high." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.4" } }, "nbformat": 4, "nbformat_minor": 0 }