Skip to content

Instantly share code, notes, and snippets.

@sallos-cyber
Created March 9, 2021 14:19
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 sallos-cyber/92bc3666b6228925c5798dc296171ab3 to your computer and use it in GitHub Desktop.
Save sallos-cyber/92bc3666b6228925c5798dc296171ab3 to your computer and use it in GitHub Desktop.
BirthdayExample
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"How large is the probability that there are at least two people in a group of k people whose birthday is on the same day? It's easier to compute the complement, the probability that no two people have the same birthday, and then to subtract this from 1. The complement is: $P(no birthday matches) = P(A^c)=\\frac{365!}{(365-k!)\\times 365^n} $\n",
"Thus, the event we are interested in: At least one birthday match. So, $P(A) = 1- P(A^c)$.\n",
"\n",
"For several values of k (number of people) we compute $P(A) = 1 - P(A^c)$"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import math\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def computeBirthdayProb(k):\n",
" if k == 0 or k==1:\n",
" return 0\n",
" variation=np.arange(365,365-k,-1)\n",
" #this is neither efficient nor elegant\n",
" #a pseudoalgorithm for efficient computation of n choose k:\n",
" #https://de.wikipedia.org/wiki/Binomialkoeffizient\n",
" variation = variation / 365\n",
" prob_no_match=1\n",
" for i in variation:\n",
" prob_no_match = prob_no_match*i\n",
" \n",
" return 1-prob_no_match\n"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"number_of_people = 50\n",
"number_of_people_list = list(range(1,number_of_people+1))\n",
"dist = []\n",
"for k in number_of_people_list:\n",
" dist.append(computeBirthdayProb(k) )\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# make a nice figure\n",
"fig,ax1 = plt.subplots(figsize=(6,6)) \n",
"ax1.set_ylabel(\"probability of match\", color=\"blue\")\n",
"ax1.set_xlabel(\"number of people\")\n",
"ax1.plot(number_of_people_list, dist,color='blue')\n",
"ax1.set_title('probability of birthday match according to number of people')\n",
"ax1.set(ylim=(0, 1))\n",
"plt.interactive(True)\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can actually approximate this in a quicker way using a Poisson distribution. This example is take from Blitzstein and Hwang p. 179 (2nd edition): The Poisson distribution is: $P(X=k) = \\frac{e^{-\\lambda}*\\lambda^k}{k!}$ for $k= 1,2,3 ..$. It is fully described by $\\lambda$ which is also the mean and the variance of the Poisson distribution. Let X be a random variable that counts the number of birthday matches among k people. The probability that any 2 people's birthday is on the same day is $1/365$. When there are k people, there are $k\\choose{2}$ possible pairs. Therefore the expected number of birthday matches is ${k\\choose{2}} * 1/365 = \\lambda$. \n",
"The probability that there is at least one birthday match among k people is = $P(X>=1) = 1 - P(X=0)$ The expression $P(X=0)$ can be approximated by Poisson distribution: $P(X=0) = \\frac{e^{-\\lambda}*\\lambda^0}{0!} = e^{-\\lambda}$. Thus: $P(X>=1) = 1 - P(X=0) = 1 - Pois(\\lambda) = 1 - e^{-\\lambda}$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For k=20 $\\lambda = 20\\choose{2}*1/365$. Thus, $1-e^- "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.5000017521827107"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from scipy.special import comb\n",
"import math\n",
"lmbda = comb(23,2)*(1/365)\n",
"1-math.pow(math.e,-lmbda)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.6"
},
"toc-showtags": false
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment