Created
December 1, 2017 16:57
-
-
Save amrav/c3d8275baf796149097c9e0a81060689 to your computer and use it in GitHub Desktop.
Cache refresh traffic estimation using a k-sided die
This file contains 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": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"%matplotlib inline" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"from scipy import stats, integrate\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"trials done\n" | |
] | |
} | |
], | |
"source": [ | |
"epochs = 10000\n", | |
"trials = np.reshape(np.random.randint(0, 31, 3000 * epochs), (epochs, -1))\n", | |
"print(\"trials done\")\n", | |
"counts_per_epoch=np.apply_along_axis(np.bincount, axis = 1, arr = trials)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(10000,)" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"max_count_per_epoch = np.apply_along_axis(max, axis=1, arr = counts_per_epoch)\n", | |
"max_count_per_epoch.shape" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"118" | |
] | |
}, | |
"execution_count": 15, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"max_count_per_epoch[3]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([ 0.0222, 0.2088, 0.5403, 0.7504, 0.9064, 0.9725, 0.9893,\n", | |
" 0.9963, 0.9994, 1. ]),\n", | |
" array([ 106. , 109.7, 113.4, 117.1, 120.8, 124.5, 128.2, 131.9,\n", | |
" 135.6, 139.3, 143. ]),\n", | |
" <a list of 10 Patch objects>)" | |
] | |
}, | |
"execution_count": 16, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAADrJJREFUeJzt3X+s3fVdx/Hna+2YcY7h7MXN/uBW\nLWZ10UBuGLqomKErqK3GzZRsEZWs/1j3B/NHFwwaFhOBP5bMoNhEsh8RKs64XUdJMZM5YyxSfo7C\nmt11zF7B0THELHOwxrd/nFN2uJzb873tKef0w/ORnNzvj0/OeeXTnFe/93vO93tTVUiS2vKqSQeQ\nJI2f5S5JDbLcJalBlrskNchyl6QGWe6S1CDLXZIaZLlLUoMsd0lq0OpJvfCaNWtqdnZ2Ui8vSWek\n++6772tVNTNq3MTKfXZ2lgMHDkzq5SXpjJTkK13GeVpGkhpkuUtSgyx3SWqQ5S5JDbLcJalBI8s9\nyS1JnkryyDL7k+TDSRaSPJzkwvHHlCStRJcj948AW06w/zJgU/+xA/iLU48lSToVI8u9qj4HfP0E\nQ7YBH6ue/cA5Sd40roCSpJUbxzn3tcCRgfXF/jZJ0oSM4wrVDNk29K9uJ9lB79QNGzZsGMNLSxqH\n2V13TDrCK8rjf/oLp/01xnHkvgisH1hfBzwxbGBV7a6quaqam5kZeWsESdJJGseR+zywM8ke4K3A\ns1X15BieV3rF8Qha4zKy3JPcBlwCrEmyCPwR8GqAqroZ2AtcDiwA3wR+83SFlSR1M7Lcq+qKEfsL\n+O2xJZIknbKJ3fJXmlaeGlELvP2AJDXIcpekBlnuktQgy12SGmS5S1KDLHdJapDlLkkNstwlqUGW\nuyQ1yHKXpAZZ7pLUIMtdkhpkuUtSg7wrpKaWd2eUTp5H7pLUIMtdkhpkuUtSgyx3SWqQ5S5JDbLc\nJalBlrskNchyl6QGWe6S1CDLXZIaZLlLUoMsd0lqkOUuSQ2y3CWpQZa7JDXIcpekBlnuktSgTuWe\nZEuSQ0kWkuwasn9DkruTPJDk4SSXjz+qJKmrkeWeZBVwE3AZsBm4IsnmJcP+ELi9qi4AtgN/Pu6g\nkqTuuhy5XwQsVNXhqnoe2ANsWzKmgLP7y68HnhhfREnSSnX5A9lrgSMD64vAW5eM+WPgriS/A7wW\nuHQs6SRJJ6XLkXuGbKsl61cAH6mqdcDlwMeTvOS5k+xIciDJgaNHj648rSSpky7lvgisH1hfx0tP\nu1wF3A5QVf8GfBewZukTVdXuqpqrqrmZmZmTSyxJGqlLud8LbEqyMclZ9D4wnV8y5j+AtwMkeTO9\ncvfQXJImZGS5V9UxYCewD3iM3rdiDia5LsnW/rD3A+9N8hBwG/AbVbX01I0k6WXS5QNVqmovsHfJ\ntmsHlh8F3jbeaJKkk+UVqpLUIMtdkhpkuUtSgyx3SWqQ5S5JDer0bRm9ss3uumPSESStkEfuktQg\ny12SGmS5S1KDLHdJapDlLkkNstwlqUGWuyQ1yHKXpAZZ7pLUIMtdkhpkuUtSgyx3SWqQ5S5JDbLc\nJalBlrskNchyl6QGWe6S1CDLXZIaZLlLUoMsd0lqkOUuSQ2y3CWpQZa7JDXIcpekBlnuktQgy12S\nGmS5S1KDOpV7ki1JDiVZSLJrmTG/luTRJAeT3DremJKklVg9akCSVcBNwM8Bi8C9Sear6tGBMZuA\nDwBvq6pnkpx7ugJLkkbrcuR+EbBQVYer6nlgD7BtyZj3AjdV1TMAVfXUeGNKklaiS7mvBY4MrC/2\ntw06Hzg/yb8m2Z9ky7gCSpJWbuRpGSBDttWQ59kEXAKsA/4lyVuq6r9f9ETJDmAHwIYNG1YcVpLU\nTZcj90Vg/cD6OuCJIWM+VVXfrqovA4folf2LVNXuqpqrqrmZmZmTzSxJGqFLud8LbEqyMclZwHZg\nfsmYTwI/C5BkDb3TNIfHGVSS1N3Icq+qY8BOYB/wGHB7VR1Mcl2Srf1h+4CnkzwK3A38XlU9fbpC\nS5JOrMs5d6pqL7B3ybZrB5YLuLr/kCRNmFeoSlKDLHdJapDlLkkNstwlqUGWuyQ1yHKXpAZZ7pLU\noE7fc9fkze66Y9IRJJ1BPHKXpAZZ7pLUIMtdkhpkuUtSgyx3SWqQ5S5JDbLcJalBlrskNchyl6QG\nWe6S1CDLXZIaZLlLUoMsd0lqkOUuSQ2y3CWpQZa7JDXIcpekBlnuktQgy12SGmS5S1KDLHdJapDl\nLkkNstwlqUGWuyQ1qFO5J9mS5FCShSS7TjDunUkqydz4IkqSVmpkuSdZBdwEXAZsBq5IsnnIuNcB\n7wPuGXdISdLKdDlyvwhYqKrDVfU8sAfYNmTcB4EbgG+NMZ8k6SR0Kfe1wJGB9cX+thckuQBYX1Wf\nHmM2SdJJ6lLuGbKtXtiZvAr4EPD+kU+U7EhyIMmBo0ePdk8pSVqRLuW+CKwfWF8HPDGw/jrgLcBn\nkzwOXAzMD/tQtap2V9VcVc3NzMycfGpJ0gl1Kfd7gU1JNiY5C9gOzB/fWVXPVtWaqpqtqllgP7C1\nqg6clsSSpJFGlntVHQN2AvuAx4Dbq+pgkuuSbD3dASVJK7e6y6Cq2gvsXbLt2mXGXnLqsSRJp8Ir\nVCWpQZa7JDXIcpekBlnuktQgy12SGmS5S1KDLHdJapDlLkkNstwlqUGWuyQ1yHKXpAZZ7pLUIMtd\nkhpkuUtSgyx3SWqQ5S5JDbLcJalBlrskNchyl6QGWe6S1CDLXZIaZLlLUoMsd0lqkOUuSQ2y3CWp\nQZa7JDXIcpekBlnuktQgy12SGmS5S1KDLHdJapDlLkkNstwlqUGdyj3JliSHkiwk2TVk/9VJHk3y\ncJLPJDlv/FElSV2NLPckq4CbgMuAzcAVSTYvGfYAMFdVPwZ8Arhh3EElSd2t7jDmImChqg4DJNkD\nbAMePT6gqu4eGL8feM84Q06T2V13TDqCJI3U5bTMWuDIwPpif9tyrgLuHLYjyY4kB5IcOHr0aPeU\nkqQV6VLuGbKthg5M3gPMATcO219Vu6tqrqrmZmZmuqeUJK1Il9Myi8D6gfV1wBNLByW5FLgG+Jmq\nem488SRJJ6PLkfu9wKYkG5OcBWwH5gcHJLkA+Etga1U9Nf6YkqSVGFnuVXUM2AnsAx4Dbq+qg0mu\nS7K1P+xG4HuAv03yYJL5ZZ5OkvQy6HJahqraC+xdsu3ageVLx5xLknQKvEJVkhpkuUtSgyx3SWqQ\n5S5JDbLcJalBlrskNchyl6QGWe6S1CDLXZIaZLlLUoMsd0lqkOUuSQ2y3CWpQZa7JDXIcpekBlnu\nktQgy12SGmS5S1KDLHdJapDlLkkNstwlqUGWuyQ1yHKXpAZZ7pLUIMtdkhpkuUtSgyx3SWqQ5S5J\nDbLcJalBlrskNchyl6QGrZ50gJMxu+uOSUeQpKnW6cg9yZYkh5IsJNk1ZP9rkvxNf/89SWbHHVSS\n1N3Ick+yCrgJuAzYDFyRZPOSYVcBz1TVDwMfAq4fd1BJUnddjtwvAhaq6nBVPQ/sAbYtGbMN+Gh/\n+RPA25NkfDElSSvRpdzXAkcG1hf724aOqapjwLPA940joCRp5bp8oDrsCLxOYgxJdgA7+qvfSHJo\nmddcA3ytQ7ZJMuN4nAkZ4czIacbxOO0Zc2onrs/rMqhLuS8C6wfW1wFPLDNmMclq4PXA15c+UVXt\nBnaPesEkB6pqrkO2iTHjeJwJGeHMyGnG8TgTMnbR5bTMvcCmJBuTnAVsB+aXjJkHruwvvxP4p6p6\nyZG7JOnlMfLIvaqOJdkJ7ANWAbdU1cEk1wEHqmoe+Cvg40kW6B2xbz+doSVJJ9bpIqaq2gvsXbLt\n2oHlbwHvGmOukadupoAZx+NMyAhnRk4zjseZkHGkePZEktrjvWUkqUETKfcktyR5KskjA9vekOQf\nk3yx//N7+9svSfJskgf7j2uXf+bTnvFdSQ4m+b8kc0vGf6B/+4VDSd4xbRmTzCb534F5vHmCGW9M\n8oUkDyf5+yTnDOyblnkcmnHK5vGD/XwPJrkryQ/0tyfJh/vz+HCSC6cw40Te18vlHNj3u0kqyZr+\n+kTmciyq6mV/AD8NXAg8MrDtBmBXf3kXcH1/+RLg01OS8c3AjwCfBeYGtm8GHgJeA2wEvgSsmrKM\ns4PjJjyPPw+s7i9fP/BvPU3zuFzGaZrHsweW3wfc3F++HLiT3vUnFwP3TGHGibyvl8vZ376e3hdH\nvgKsmeRcjuMxkSP3qvocL/0e/OAtDD4K/PLLGmqJYRmr6rGqGnbh1TZgT1U9V1VfBhbo3bZhmjJO\nxDIZ76relcwA++ldOwHTNY/LZZyIZTL+z8Dqa/nOhYPbgI9Vz37gnCRvmrKME7NM/0Dvvli/z4sz\nTmQux2Gazrl/f1U9CdD/ee7Avp9I8lCSO5P86GTinVCXWzRMg41JHkjyz0l+atJh+n6L3pERTO88\nDmaEKZrHJH+S5AjwbuD4qY2pmsdlMsIUva+TbAX+s6oeWrJrquZyJaap3JdzP3BeVf048GfAJyec\nZ5hOt1+YsCeBDVV1AXA1cGuSsycZKMk1wDHgr49vGjJsovM4JONUzWNVXVNV6/v5dvY3T9U8LpNx\nat7XSb4buIYX/8fzwu4h26btvT3UNJX7V4//utP/+RT0fq2rqm/0l/cCrz7+YccU6XKLhonqn+p4\nur98H73z2edPKk+SK4FfBN5d/ZObTNk8Dss4bfM44FbgV/vLUzWPA17IOGXv6x+i9xnPQ0kepzdf\n9yd5I9M7lyNNU7kP3sLgSuBTAEnemPRuH5zkInqZn55IwuXNA9vT+6MlG4FNwL9PONOLJJlJ7978\nJPlBehkPTyjLFuAPgK1V9c2BXVMzj8tlnLJ53DSwuhX4Qn95Hvj1/jc9LgaePX7K8+W2XMZpel9X\n1eer6tyqmq2qWXqFfmFV/RdTNJcrNolPcYHb6P16+216E3kVvVsEfwb4Yv/nG/pjdwIH6X2LYj/w\nkxPM+Cv95eeArwL7BsZfQ+8o7hBw2bRlpHfEdHwe7wd+aYIZF+idx3yw/7h5CudxaMYpm8e/Ax4B\nHgb+AVjbHxt6f2DnS8DnGfjW1BRlnMj7ermcS/Y/zne+LTORuRzHwytUJalB03RaRpI0Jpa7JDXI\ncpekBlnuktQgy12SGmS5S1KDLHdJapDlLkkN+n9zc7vYxPGcvwAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1aa380eb38>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.hist(max_count_per_epoch, cumulative=True, normed=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"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.6.3" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment