Created
May 2, 2024 15:41
-
-
Save cranmer/8daa25dfcb02b13e5a9148e5af78f994 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "d0a59451", | |
"metadata": {}, | |
"source": [ | |
"## Karl Rohe's birthday puzzle\n", | |
"by Kyle Cranmer, May 2, 2024\n", | |
"\n", | |
"Original post: https://x.com/karlrohe/status/1785651634854396171\n", | |
"\n", | |
"> Probability question!\n", | |
">\n", | |
"> Everyone in our household (n=6) has their birthdays inside a continuous 6 month interval. Seems unlikely? But more likely than (1/2)^n. \n", | |
">\n", | |
"> Suppose n points uniformly distributed on circle. What is the probability that they belong to a connected half circle?\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"id": "b61ec3b0", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"import scipy" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "b0dbcc3c", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"window = 0.5\n", | |
"M=1000000\n", | |
"N=6\n", | |
"def gen(N=6):\n", | |
" x = np.random.uniform(0,1,N*M)\n", | |
" x = x.reshape((M,N))\n", | |
" maxi = np.zeros((M,N))\n", | |
" for i in range(N):\n", | |
" temp=np.roll(x,i,axis=1) # shift ith member entry to origin\n", | |
" z = np.mod(temp-temp[:,0:1],1) # distance of each wrt. origin mod 1\n", | |
" maxi[:,i]=np.max(z,axis=1) # family member with b'day furthest from ith member\n", | |
" spread = np.min(maxi,axis=1) #find the tightest range that includes all members\n", | |
" return spread" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "9f5f3f17", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"spread = gen()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"id": "e671e91a", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, 'probability density')" | |
] | |
}, | |
"execution_count": 4, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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02ZbaQ0XBCyg5CFglWwELEjFaB2s9PR0DR8+XD4+PqpQoYIqVapk8wAAACjt7A5Yb7zxhjZu3KgFCxbIzc1NixYt0tSpUxUQEKC///3vhVEjAACAQ7F7Haw1a9bo73//uzp06KDBgwerbdu2qlevnmrWrKmlS5eqf//+hVEnAACAw7C7B+vSpUuqU6eOpBvzrS5duiRJeuSRRyxfyR0AAMAR2R2w6tSpo+PHj0uSGjZsqOXLl0u60bOVe/NnAACA0szugDV48GDt27dPkjR27FjNnz9f5cqV06hRozR69GjLCwQAAHA0ds/BGjVqlPnnsLAwHTx4UD/++KPq1aunJk2aWFocAACAI7I7YN2qVq1aqlWrlgWlAAAAlAx2DxFKUmxsrLp166a6deuqbt266tatm7777jurawMAAHBIdgesjz76SJ07d5aHh4deffVVvfrqq/L09FSXLl00f/78wqgRAADAodh9q5zq1atr7NixGj58uM32+fPn65133tF///tfSwt0FNwqB3B83BqndOPWOaVTsblVTkpKijp37pxne6dOnZSammpJUQAAAI7M7oD1xBNPaNWqVXm2//Of/1S3bt0sKQoAAMCRFehXhB988IH556CgIP3lL39RXFycQkNDJUk//PCDtm3bptdee61wqgQAAHAgBZqDVbt27YIdzMlJx44d+8NFOSLmYAGOjzlYpRtzsEqnwvr+LlAPVu6tcQAAAPD77modrFyGYcjOHyECAACUeHcVsP7+978rODhY7u7ucnd3V5MmTfTpp59aXRsAAIBDsvtWObNnz9bEiRM1fPhwPfzww5KkrVu3atiwYbpw4YLNvQoBoLhj3hWAwmB3wPrwww+1YMECPffcc+a2J554Qg888ICmTJlCwAIAAKWe3UOEZ8+e1UMPPZRn+0MPPaSzZ89aUhQAAIAjsztg1atXT8uXL8+z/csvv9T9999vSVEAAACOzO4hwqlTp6p3797asmWLOQdr27Ztio2NzTd4AQAAlDZ292D16tVLO3fuVNWqVbV69WqtXr1aVatW1c6dO/XUU08VRo0AAAAOxa4erKysLP3P//yPJk6cqM8++6ywagIAAHBodvVglS1bVv/4xz8KqxYAAIASwe45WD169NDq1atZjgGAQ2LdKwD3gt0B6/7779ebb76pbdu2qWXLlqpQoYLN/ldeecWy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8ePau3evLly4oIyMDElSu3btdPnyZa1du9YMUx06dNDSpUvl7++v+vXrmzVMnTpV06ZN0wcffKBffvlF+/fv1+LFizV79mxJUv/+/VW1alU9+eST+v7773X8+HHFxcXplVde0enTpwt0nrdTrlw5DRw4UPv27dP333+vV155Rc8++6z8/PzsOk6tWrUUGxurpKSkPEPHt1OxYkUNGTJEo0eP1saNG5WYmKhBgwbZ/PdSo0YNubq66sMPP9SxY8f0r3/9S2+99VaeY7m4uGjQoEEaN26c7r//fpuh3+joaP31r39VYmKijh07ps8++0zu7u6qWbOmXecIFFcELMCBeXp6asuWLerSpYvq16+vCRMmaNasWXr88cfNNo899pjuv/9+tWvXTr1799YTTzyhKVOm3PG4AQEB2rZtm7Kzs9WpUycFBwdr5MiR8vb2lrOzs5ydnbVs2TIlJCSocePGGjVqlGbOnGlzjIoVK2rNmjXav3+/mjdvrvHjx+c75Jif1157Tbt371bz5s319ttva/bs2ebyEU5OTvr666/Vrl07DR48WPXr11efPn30n//8R76+vpKkXr16qXPnzurYsaOqVaumL774QpJUqVIlBQcHq1q1auacsnbt2iknJ8fsnck1dOhQLVq0SIsXL1ZwcLDat2+v6Ohoc+i1fPny2rJli2rUqKGePXuqUaNGGjJkiK5du/aHe7Tq1aunnj17qkuXLurUqZOaNGmSZ4mIgpg1a5ZiYmIUGBio5s2bF/h1M2fOVNu2bdW9e3eFhYXpkUcesZnjVa1aNUVHR2vFihUKCgrS9OnTbxuehwwZoszMTA0ePNhmu7e3txYuXKiHH35YTZo00Xfffac1a9aoSpUqdp8nUBw5GcZNv+cGUKIMGjRIKSkprOaNIvP999/rscce06lTp8wADJQGzMECAFguIyND58+f15QpU/TMM88QrlDqMEQIALDcF198oZo1ayolJUUzZswo6nKAe44hQgAAAIvRgwUAAGAxAhYAAIDFCFgAAAAWI2ABAABYjIAFAABgMQIWAACAxQhYAAAAFiNgAQAAWOz/A0Oy3GTQ0+gmAAAAAElFTkSuQmCC", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.hist(spread, bins=100,alpha=.3);\n", | |
"plt.xlim(0,1)\n", | |
"plt.xlabel('spread between birthdays')\n", | |
"plt.ylabel('probability density')" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "f0ad1605", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0.187296 +/- 0.0004327770788754876\n" | |
] | |
} | |
], | |
"source": [ | |
"print(np.sum(spread<window)/M,' +/-', np.sqrt(np.sum(spread<window))/M)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"id": "d29f13e5", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"0.1875" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"(window**(N-1))*scipy.special.binom(N,N-1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"id": "e7b3b289", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"Nmax=12\n", | |
"phalf_pred = np.zeros(Nmax)\n", | |
"phalf_err = np.zeros(Nmax)\n", | |
"phalf_MC = np.zeros(Nmax)\n", | |
"N_array = np.arange(3,12)\n", | |
"for N in N_array:\n", | |
" spread = gen(N)\n", | |
" #print((.5**(N-1))*scipy.special.binom(N,N-1), ': ', np.sum(spread<0.5)/M,' +/-', np.sqrt(np.sum(spread<0.5))/M)\n", | |
" phalf_pred[N]=(window**(N-1))*scipy.special.binom(N,N-1)\n", | |
" phalf_err[N]=np.sqrt(np.sum(spread<window))/M\n", | |
" phalf_MC[N]=np.sum(spread<window)/M" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"id": "498faede", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.legend.Legend at 0x124b83350>" | |
] | |
}, | |
"execution_count": 8, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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7z1dR9MIuVyOadOmoUGDBjA1NYWHhwc+++yzCq2xU1M8fPgQkyZNQv369WFqaoo2bdrg1KlTuo5VaX/++Sd69+4NZ2dnCIKAnTt3quwXRRHTp0+Hk5MTTE1NERoaimvXrukmbCU86/Pt2LEDL730EurUqQNBEBAbG1ul+VjcaICrqyvmzZuH6OhonD59Gp06dULfvn1x4cIFXUfTqFOnTuHrr7+Gn5+frqNoXLNmzZCSkqJ8HT16VNeRNObBgwdo27YtDA0NsXfvXly8eBELFy6EjY2NrqNpzKlTp1T+/+3fvx8AMHDgQB0n04z58+dj1apVWLFiBS5duoT58+djwYIFWL58ua6jacyoUaOwf/9+fP/99zh//jxeeuklhIaG4vbt27qOVik5OTnw9/fHypUrS92/YMECLFu2DKtXr8bJkydhbm6Orl27Ii8vr4qTVs6zPl9OTg7atWuH+fPnV3Gyf4ikFTY2NuI333yj6xga8/DhQ9HLy0vcv3+/2L59e3HixIm6jqQx4eHhor+/v65jaM3HH38stmvXTtcxqtTEiRNFDw8PUaFQ6DqKRvTs2VN88803VbYNGDBAfOONN3SUSLNyc3NFqVQq/vrrryrbAwMDxU8++URHqTQHgPjLL78o3ysUCtHR0VH84osvlNsyMzNFY2Nj8aefftJBwufz38/3tISEBBGAeObMmSrNxJYbDZPL5di8eTNycnIQEhKi6zga895776Fnz54IDQ3VdRStuHbtGpydndGwYUO88cYbSEpK0nUkjdm9ezdatGiBgQMHwt7eHs2bN8fatWt1HUtrCgoK8MMPP+DNN9/U+OK4utKmTRtERkbi6tWrAICzZ8/i6NGj6N69u46TaUZRURHkcjlMTExUtpuamupVK+oTCQkJSE1NVfn7VCaTITg4GMePH9dhMv1R6xbO1Jbz588jJCQEeXl5sLCwwC+//AJvb29dx9KIzZs3IyYmpkb3f5cnODgY3333HRo3boyUlBTMnDkTL7zwAuLi4mBpaanreM/txo0bWLVqFcLCwvC///0Pp06dwoQJE2BkZIThw4frOp7G7dy5E5mZmRgxYoSuo2jMlClTkJ2djSZNmkAqlUIul2P27Nl44403dB1NIywtLRESEoLPPvsMTZs2hYODA3766SccP34cnp6euo6ncampqQAABwcHle0ODg7KffR8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", | |
"text/plain": [ | |
"<Figure size 640x480 with 1 Axes>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.plot(N_array,phalf_pred[3:],label=r'prediction $\\binom{N}{N-1}\\,\\frac{1}{2}^{N-1}$')\n", | |
"plt.scatter(N_array,phalf_MC[3:],label='from simulation')\n", | |
"plt.xlabel('N family members')\n", | |
"plt.ylabel('prob family birthdays within 6 months')\n", | |
"plt.legend()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "9e3009b3", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "9de8bdaf", | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3 (ipykernel)", | |
"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.11.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
the N choose (N-1) simplifies to N, but I was thinking of the combinatorics that way.