Skip to content

Instantly share code, notes, and snippets.

@enakai00
Last active May 14, 2018 13:10
Show Gist options
  • Save enakai00/34cfca294596d29f21068daee84a578d to your computer and use it in GitHub Desktop.
Save enakai00/34cfca294596d29f21068daee84a578d to your computer and use it in GitHub Desktop.
Porter-Thomas Distribution
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 43,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"19.389349528461132"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from numpy.random import normal\n",
"from scipy import stats\n",
"from scipy.stats import entropy\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"n = 20\n",
"N = 2**n\n",
"p = []\n",
"for i in range(N):\n",
" p.append((normal(0,0.2/N,2)**2).sum())\n",
"p = np.array(p)\n",
"p = p/p.sum()\n",
"\n",
"entropy(p, qk=None, base=2)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 2.54069252e-01, 3.39138351e-01, 2.42688770e-01,\n",
" 1.37988339e-01, 7.42576424e-02, 5.03586310e-02,\n",
" 2.30454752e-02, 9.10438527e-03, 4.26768060e-03,\n",
" 1.70707224e-03, 8.53536119e-04, 2.84512040e-04,\n",
" 2.84512040e-04]),\n",
" array([ 0.01291023, 0.89160766, 1.7703051 , 2.64900254,\n",
" 3.52769997, 4.40639741, 5.28509485, 6.16379228,\n",
" 7.04248972, 7.92118716, 8.79988459, 9.67858203,\n",
" 10.55727946, 11.4359769 ]),\n",
" <a list of 13 Patch objects>)"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x960abd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"custm = stats.rv_discrete(name='custm', values=(np.arange(N), p))\n",
"result = custm.rvs(size=4000)\n",
"plt.hist(p[result]*N, bins=13, normed=True, log=True)"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x750f8d0>]"
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjYAAAFkCAYAAAAzGHFUAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3X28VWWd9/HPVxQU7YANeY74EKRFWqmAT1hTdjtoaKM2\nVnq8Hb3L0VExjerOmqlsNDP1DsTSdDQ1K086VlqaMWJqpgh6QJwU8QFICUFJAgIElN/9x7W2Z7E9\n+5y9D/s8sPi+X6/1Onut/dvrWvsS5Huuta61FBGYmZmZFcFWvX0AZmZmZvXiYGNmZmaF4WBjZmZm\nheFgY2ZmZoXhYGNmZmaF4WBjZmZmheFgY2ZmZoXhYGNmZmaF4WBjZmZmheFgY2ZmZoXRpWAjabyk\n+ZLWSHpE0gGd1B8qqVXSa5KekXRKOzWfkjQn2+dsSeO60q6kCyQtkrRa0j2S9ix7/zRJ90laLmmD\npIYOjru/pMezun067hUzMzPrbTUHG0nHA98FzgdGArOBKZKGVKgfBtwJ3AvsC0wGrpM0NldzCHAz\ncC2wH3AHcLukvWtpV9J5wNnA6cCBwKqspn/ukLYD7gYuAjp7UNalwMIq6szMzKwPUK0PwZT0CDA9\nIs7N1gW8CFwREZe2U38JMC4i9sltawEGRcSR2frPgIERcXSuZhowKyLOqrZdSYuAyyJiUrbeACwB\nTomIW8uO6yPA74AdI2JFO8c9Dvh/wHHAU8B+EfFETZ1lZmZmPaqmERtJ2wCjSaMvAERKRlOBMRU+\ndnD2ft6UsvoxHdVU066k4UBTWc0KYHoHx9YuSY3AfwInAWtq+ayZmZn1nq1rrB8C9CONguQtAUZU\n+ExThfoGSQMiYm0HNU01tNtEOmXU0X6qdQNwVUTMkvTOzool/R1wBLAAeK3GtszMzLZk2wLDgCkR\n8ZdN3VmtwabwJJ0D7ABcUtpUxceOAH7abQdlZmZWfP+bdL3tJqk12CwF3gAay7Y3AosrfGZxhfoV\n2WhNRzWlfVbT7mJSCGlk41GbRmBWhWNrz0dJp67Wpst43vSYpJ9GxGfa+cwCgJ/85CfstddeNTRl\ntZgwYQKTJk3q7cMoLPdv93Mfdz/3cferdx/PmTOHk046CbJ/SzdVTcEmItZLagUOA34Fb17Eexhw\nRYWPTQPKp24fnm3P15TvY2ypppN2v5fVzJe0ONv2RFbTABwEXFnD1/wc8O+59aGk630+Dcyo8JnX\nAPbaay9GjRpVQ1NWi0GDBrl/u5H7t/u5j7uf+7j7dWMf1+VSjq6cipoI3JgFjRnABGAgcCOApIuB\noRFRulfN1cD4bHbU9aTg8UngyNw+JwP3S/oCcBfQTLpY+LQq2r0hV3M58DVJz5GS34Wk6dp3lAqy\nC4ObgHeTRnj2kbQSeCEilkXEwvyXlbQqq5sXEYtq6ikzMzPrUTUHm4i4Nbt3zAWk0zyPA0dExCtZ\nSROwW65+gaSjgEnAOaSgcWpETM3VTJN0IuneMhcBzwLHRMRTNbRLRFwqaSBwDTAYeJA01Xxd7iuc\nQboXTmTLA9n2zwA3Vfra1faPmZmZ9Z4uXTwcEVcBV1V47y3XoETE70kjMB3t8+fAz7vabq7mm8A3\nO3j/P4D/6GgfZfV/Is3IMjMzsz7Oz4qyzUZzc3NvH0KhuX+7n/u4+7mPu19f7+Oa7zxsbyVpFNDa\n2trqi9bMzMxqMHPmTEaPHg0wOiJmbur+PGJjZmZmveJvf4M//7m++3SwMTMzs17xm9/A0Ud3XlcL\nBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwH\nGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcb\nMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxsz\nMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzK4wuBRtJ4yXNl7RG0iOSDuik/lBJrZJek/SM\npFPaqfmUpDnZPmdLGteVdiVdIGmRpNWS7pG0Z9n7p0m6T9JySRskNZS9/05J10mal+3jWUnflLRN\n9T1kZmZmvaHmYCPpeOC7wPnASGA2MEXSkAr1w4A7gXuBfYHJwHWSxuZqDgFuBq4F9gPuAG6XtHct\n7Uo6DzgbOB04EFiV1fTPHdJ2wN3ARUC0c8jvBQScBuwNTADOyOrNzMysD1NEe/+2d/AB6RFgekSc\nm60LeBG4IiIubaf+EmBcROyT29YCDIqII7P1nwEDI+LoXM00YFZEnFVtu5IWAZdFxKRsvQFYApwS\nEbeWHddHgN8BO0bEik6+85eAMyJizwrvjwJaW1tbGTVqVEe7MjMzs8ytt8Lxx88ERgOMjoiZm7rP\nmkZsstMxo0mjLwBESkZTgTEVPnZw9n7elLL6MR3VVNOupOFAU1nNCmB6B8dWrcHAq5u4DzMzM8up\ncWylKrWeihoC9CONguQtIYWK9jRVqG+QNKCTmtI+q2m3iXRqqZZj61R2jc7ZwNVd3YeZmZn1DM+K\n6oCkXUjX49wSEdf39vGYmZlZx7ausX4p8AbQWLa9EVhc4TOLK9SviIi1ndSU9llNu4tJF/02svGo\nTSMwq8KxVSRpKOkanD9ExL9W85kJEyYwaNCgjbY1NzfT3Nxca/NmZmaF09LSQktLy5vrixYBLK9r\nGzUFm4hYL6kVOAz4Fbx5Ee9hwBUVPjYNKJ+6fXi2PV9Tvo+xpZpO2v1eVjNf0uJs2xNZTQNwEHBl\nLd8zG6n5HfAo8NlqPzdp0iRfPGxmZlZB+S/7t9wCJ5zw5sXDdVHriA3ARODGLGjMIE2HHgjcCCDp\nYmBoRJTuVXM1MD6bHXU9KXh8Ejgyt8/JwP2SvgDcBTSTvuVpVbR7Q67mcuBrkp4DFgAXAgtJ08fJ\njq+RdM3Nu0kjPPtIWgm8EBHLspGa+4H5wJeBnVKGgogov37HzMzM+pCag01E3JrdO+YC0mmex4Ej\nIuKVrKQJ2C1Xv0DSUcAk4BxS0Dg1IqbmaqZJOpF0r5iLgGeBYyLiqRraJSIulTQQuIY0k+lB0lTz\ndbmvcAbpXjiRLQ9k2z8D3EQaKXpXtryYvaestl+t/WVmZmY9p+b72Nhb+T42ZmZmtSs7FdXz97Ex\nMzMz68scbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzM\nzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzM\nzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzM\nrDAcbMzMzKwwHGzMzMysV0TUf58ONmZmZtYrHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxs\nzMzMrDAcbMzMzKww+kywkTRe0nxJayQ9IumATuoPldQq6TVJz0g6pZ2aT0mak+1ztqRxXWlX0gWS\nFklaLekeSXuWvX+apPskLZe0QVJDO/vYUdJPs5plkq6TtH11vWNmZmbV6BPBRtLxwHeB84GRwGxg\n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\nkE7hPA4cERGvZCVNwG65+gWSjgImkaZ1LwROjYipuZppkk4ELsqWZ4FjIuKpGtolIi6VNBC4BhgM\nPAiMi4h1ua8wgXRa6zZgAPBbYHxuH3+VdARwMWnWVX/gSeDoiPifWvvLzMzM2tcdIzaK7tjrFkbS\nKKC1tbXV19iYmZlV6fOfh8mT37zGZnREzNzUffqaETMzM+sVvX6DPjMzM7N6cbAxMzOzwnCwMTMz\ns8JwsDEzM7PCcLAxMzOzwnCwMTMzs8JwsDEzMzPrgIONmZmZ9QqP2JiZmVlhONiYmZlZYTjYmJmZ\nWWE42JiZmVlhONiYmZlZYaxdW/99OtiYmZlZr3CwMTMzs8JwsDEzM7PCcLAxMzOzwli3rv77dLAx\nMzOzXuERGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxszMzMrDAcbMzMzKwwHGzMzMysMBxsz\nMzMrDAcbMzMzK4TXX4cNG+q/XwcbMzMz63Hd8TgFcLAxMzOzXtAdp6HAwcbMzMx6gYONmZmZFYaD\njZmZmRVGnwo2ksZLmi9pjaRHJB3QSf2hklolvSbpGUmntFPzKUlzsn3OljSuK+1KukDSIkmrJd0j\nac+y9wdIulLSUkkrJd0maad29nNU1sZqSa9K+kV1vWNmZmad6TPBRtLxwHeB84GRwGxgiqQhFeqH\nAXcC9wL7ApOB6ySNzdUcAtwMXAvsB9wB3C5p71ralXQecDZwOnAgsCqr6Z87pMuBo4DjgA8DQ4Gf\nlx3zccBNwA+BDwCl4zMzM7M66K5go4io7QPSI8D0iDg3WxfwInBFRFzaTv0lwLiI2Ce3rQUYFBFH\nZus/AwZGxNG5mmnArIg4q9p2JS0CLouISdl6A7AEOCUibs3WXwFOiIhfZjUjgDnAwRExQ1I/YAHw\n9Yi4sco+GQW0tra2MmrUqGo+YmZmtkV76CH40IcAZgKjAUZHxMxN3W9NIzaStslav7e0LVIymgqM\nqfCxg7P386aU1Y/pqKaadiUNB5rKalYA03Nt7Q9sXVYzF3ghVzOaNIqDpJnZaa3fSHpfhe9nZmZm\nNeorp6KGAP1IoyB5S0ihoj1NFeobJA3opKa0z2rabQKik5pGYF0WeCrVDAdEOuV1Aem01TLgfkmD\n2/+KZmZmVou+Emy2BKU++VZE3B4Rs4DPkELTp3rvsMzMzIqju4LN1jXWLwXeII185DUCiyt8ZnGF\n+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\nhfH/ARhCEpr6ChGQAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x14cea210>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"subplot = fig.add_subplot(111)\n",
"subplot.set_xlim([0,N])\n",
"subplot.plot(sorted(p), linewidth=2)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.5"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment