{ "metadata": { "name": "1.Rolling a die.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Uniform Random Probabilities\n", "## *If I roll a die 100 times, how many times will it come up a 6?*\n", "---" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import random\n", "import math\n", "\n", "num_rand_vals = 100\n", "min_value = 1\n", "max_value = 6\n", "\n", "rand_vals = []\n", "\n", "print \"Roll: number\"\n", "for i in xrange(num_rand_vals):\n", " val = random.randint(min_value, max_value)\n", " rand_vals.append(val)\n", " if (i < 10):\n", " print \"%d: %d\" % (i, val)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Roll: number\n", "0: 4\n", "1: 3\n", "2: 2\n", "3: 3\n", "4: 3\n", "5: 6\n", "6: 4\n", "7: 2\n", "8: 1\n", "9: 4\n" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "min_seen = min(rand_vals)\n", "max_seen = max(rand_vals)\n", "mean_seen = (sum(rand_vals)+0.0) / len(rand_vals)\n", "\n", "print \"When simulating %d random values between %d and %d\" % (num_rand_vals, min_value, max_value)\n", "print \"The smallest I saw was %d\" % (min_seen)\n", "print \"The biggest I saw was %d\" % (max_seen)\n", "print \"And the mean value was %.02f\" % (mean_seen)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "When simulating 100 random values between 1 and 6\n", "The smallest I saw was 1\n", "The biggest I saw was 6\n", "And the mean value was 3.41\n" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "## Plot the individual vals\n", "plt.figure()\n", "plt.xlabel(\"Roll Index\")\n", "plt.ylabel(\"Result\")\n", "plt.scatter(range(num_rand_vals), rand_vals)\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "## summarize how many times we saw each value\n", "tally = [0 for x in xrange(max_value+1)]\n", "for i in rand_vals:\n", " tally[i] += 1\n", "\n", "print \"value #times_seen\"\n", "for t in xrange(len(tally)):\n", " print \"%d: %d\" % (t, tally[t])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "value #times_seen\n", "0: 0\n", "1: 14\n", "2: 22\n", "3: 15\n", "4: 19\n", "5: 18\n", "6: 12\n" ] } ], "prompt_number": 43 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Why does 0 have 0?\n", "---" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print \"We expected to see the number 6 %.02f percent of the time = %d times\" % (100./6, num_rand_vals/6)\n", "print \"We actually saw 6 %d times\" % (tally[6])" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "We expected to see the number 6 16.67 percent of the time = 16 times\n", "We actually saw 6 12 times\n" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "## summarize the tally\n", "mean_tally = (sum(tally) + 0.) / (len(tally)-1) ## skip 0\n", "min_tally = tally[1]\n", "\n", "sumdiff = 0.0\n", "for i in xrange(min_value, max_value+1):\n", " diff = (tally[i] - mean_tally) ** 2\n", " sumdiff += diff\n", " if (tally[i] < min_tally):\n", " min_tally = tally[i]\n", "\n", "sumdiff /= (len(tally)-1)\n", "stdev_tally = math.sqrt(sumdiff)\n", "\n", "print \"the minimum tally was %d\" % (min_tally)\n", "print \"the maximum tally was %d\" % (max(tally))\n", "print \"the mean tally was %.02f +/- %.2f\" % (mean_tally, stdev_tally)\n" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "the minimum tally was 12\n", "the maximum tally was 22\n", "the mean tally was 16.67 +/- 3.35\n" ] } ], "prompt_number": 45 }, { "cell_type": "code", "collapsed": false, "input": [ "## plot the tally, a histogram\n", "plt.figure()\n", "plt.xlabel(\"Value\")\n", "plt.ylabel(\"Number of occurences\")\n", "plt.bar(range(max_value+1), tally)\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nvDcptvuzX29SsP35Gxv2mf6pU6ckSb169dJtt92me+65R5s2bQp3GQBgpLCHfkFBgdq2bev7vn37\n9tq4cWO4ywAAI7EjFwAMUjXcP7Br166aPHmy7/vCwkL16dOnwpiWLVtq3z5HuEu7YZfWCwMebVkd\nVqG/CqMtq8MKwfUmxXZ/9upNCry/li1b+h0T9tCvW7eupEtH8CQnJ+uDDz7QjBkzKozZu3dvuMsC\nACOEPfQl6bnnntPDDz+sixcv6rHHHqtw5A4AwDoROWQTABAZUbUjNzs7W40bN9Ydd9wR6VIscfDg\nQfXu3VspKSlyuVxaunRppEsKqXPnzik9PV2pqanq1q2bcnNzI11SyH3//fdyOp3q379/pEsJuebN\nm6tjx45yOp1KS0uLdDkhV1xcrAcffFCtW7eOuaMGv/rqKzmdTt+jbt26euGFF646Nqpm+p988okS\nEhI0cuRI7dy5M9LlhNyRI0d05MgRpaam6tixY0pLS9P27dtVp06dSJcWMiUlJapVq5bOnz+vLl26\n6J133lGrVq0iXVbIPPvss9qyZYs8Ho9WrlwZ6XJCqkWLFtqyZYsaNGgQ6VIsMWnSJNWsWVPTpk1T\n1apVVVxc7NvHGEvKysp06623Kj8/X82aNbviz6Nqpt+zZ0/Vr18/0mVYJikpSampqZKkhg0bKiUl\nRZs3b45wVaFVq1YtSdKZM2dUWlqq6tWrR7ii0Dl06JDee+89/eY3vwnqDFc7idW+JOnDDz/U1KlT\nVaNGDVWtWjUmA1+61GfLli2vGvhSlIW+Sfbu3avCwsKY+xhdVlamTp06qXHjxho7duw1/+HZ0eOP\nP66nn35acXGx+WvjcDiUkZGhQYMGxdynmEOHDuncuXPKyclRenq65s6dq3PnzkW6LEssW7ZMWVlZ\n1/zz2PzXG+U8Ho+GDx+u3Nxc1a5dO9LlhFRcXJy2b9+uvXv3av78+dq6dWukSwqJvLw8NWrUSE6n\nM2Znwxs2bND27ds1Z84cTZgwQUeOHIl0SSFz7tw57d69W0OGDJHb7VZhYaH+9re/RbqskLtw4YJW\nrVqlYcOGXXMMoR9mFy9e1JAhQ/TAAw9o4MCBkS7HMs2bN1ffvn1j5rpKn332mVauXKkWLVooMzNT\n69at08iRIyNdVkg1adJEktSuXTsNGDBAq1atinBFodOqVSu1adNG/fv3V82aNZWZman3338/0mWF\n3Pvvv68uXbro5ptvvuYYQj+MvF6vRo8erQ4dOmj8+PGRLifkjh07ppMnT0qSjh8/rrVr18bMf2yz\nZ8/WwYMHtX//fi1btkwZGRlavHhxpMsKmZKSEnk8HknSd999pzVr1lxxprzd3X777dq0aZPKysr0\n7rvv6uc//3mkSwq5N954Q5mZmdcdE1Whn5mZqe7du2v37t1q1qyZXn311UiXFFIbNmzQkiVLtG7d\nOt+hVatXr450WSHzzTffKCMjQ506dVJWVpYmTZrkmz3GmuAvaxDdjh49qp49eyo1NVUjRozQxIkT\nY2p/jCQ988wz+v3vf6/OnTurRo0aGjFiRKRLCqni4mJ9+OGH+uUvf3ndcVF1yCYAwFpRNdMHAFiL\n0AcAgxD6AGAQQh8ADELoA4BBCH0AMAihD2NlZGRo7dq1FZ577rnn9Mgjj1x1vMvl0pYtW8JRGmAZ\nQh/GyszM1LJlyyo8t3z58mterMrhcMTcSVkwD6EPYw0ZMkTvvvuuSktLJUkHDhzQ119/raVLl6pr\n167q3r27FixYcNXXJiQk+L5esWKFRo0aJUkqKirSrFmz1KNHDw0bNkzbtm2zvhEgCIQ+jNWgQQOl\npaXpvffek3TpkrTDhw/X7NmzVVBQILfbrYULF6q4uPiK15af8Zf/+vnnn1dqaqo2bNigGTNmaNq0\nadY3AgSB0IfRyi/xLF++XJmZmVq7dq369esnp9Op//znP1q3bt1136P8lUzeeustzZw5U06nUw88\n8IC++OKLmL1uO+ypaqQLACJpwIABevzxx7V161aVlJTo9ttv15AhQ/TJJ5/o1ltv1eDBg1VUVHTF\n66pUqeL7+sSJE76vv//+e+Xl5Sk5OTks9QPBYqYPoyUkJKh3794aNWqUsrKyVFRUpGrVqikpKUm7\nd+/WRx99dNXXde7cWZ9//rmKi4u1fPly3xJPVlaW5s2bp/Pnz0sSa/qIOoQ+jJeZmamdO3cqMzNT\nzZo105AhQ9ShQweNHTtW/fv3v+prpk6dqscee0wZGRnq0qWL7/mxY8eqbt26uuuuu5SSkqK//OUv\n4WoDCAiXVgYAgzDTBwCDEPoAYBBCHwAMQugDgEEIfQAwCKEPAAYh9AHAIIQ+ABjk/wFG7qhBXyYt\nWAAAAABJRU5ErkJggg==\n", "text": [ "" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "## The hist function will do everything for us in one step\n", "plt.figure()\n", "plt.xlabel(\"Value\")\n", "plt.ylabel(\"Number of occurences\")\n", "plt.hist(rand_vals, bins=range(max_value+2))\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "## The hist function can also plot the probability of each number, i.e. the density function\n", "plt.figure()\n", "plt.xlabel(\"Value\")\n", "plt.ylabel(\"Percent of occurences\")\n", "plt.hist(rand_vals, bins=range(max_value+2), normed=True)\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\npSkpKUk33nijXnjhhUCXZIkLFy7I7XYrKysr0KX4XXR0tEaMGCG3263U1NRAl+N3p0+f1t13362f\n/exnjrtS8l//+pfcbrdnCQsL09KlSy+7rS1HDh999JF69uypGTNm6LPPPgt0OX53+PBhHT58WElJ\nSfruu++Umpqq3bt3q1evXoEuzS/OnDmjq6++WufOnVNycrLefvttDR06NNBl+dXzzz+vHTt2qL6+\nXiUlJYEux68GDx6sHTt2KDw8PNClWOKxxx5Tjx499OSTTyokJESnT5/2nEN1kubmZl1//fXavn27\nBg4caHreliOHW2+9VX369Al0GZYZMGCAkpKSJEkRERG64YYb9PHHHwe4Kv+5+uqrJUmnTp1SU1OT\nrrrqqgBX5F9fffWV3n33Xf361782XartFE7tS5I2btyouXPnqnv37goJCXFkMEgX+xwyZMhlg0Gy\naTgEk4MHD2rPnj2OGr43NzcrMTFR/fv31+zZs1v95bSrRx55RIsWLVKXLs7838vlcikjI0OTJk1y\n3Kjoq6++UkNDg+6//36lpaXpmWeeUUNDQ6DLssSqVauUn5/f6vPO/O11iPr6ek2dOlUvvPCCrrnm\nmkCX4zddunTR7t27dfDgQb344ovauXNnoEvym3Xr1um6666T2+127F/XW7Zs0e7du/V///d/evTR\nR3X48OFAl+Q3DQ0NOnDggHJyclRaWqo9e/bob3/7W6DL8rvz589r7dq1mjJlSqvbEA6dVGNjo3Jy\ncjR9+nRNnDgx0OVYIjo6WnfccYej7pu1detWlZSUaPDgwcrLy9OmTZs0Y8aMQJflV5GRkZKk+Ph4\nZWdna+3atQGuyH+GDh2qYcOGKSsrSz169FBeXp7ee++9QJfld++9956Sk5PVr1+/VrchHDohwzB0\n3333afjw4Xr44YcDXY5ffffddzpx4oQk6ejRo/rggw8cFX5PP/20vvzySx06dEirVq1SRkaG/vKX\nvwS6LL85c+aM6uvrJV28o8H69es1YcKEAFflX7GxsaqsrFRzc7Peeecd/fKXvwx0SX7317/+VXl5\neVfcxpbhkJeXp5tuukkHDhzQwIED9eqrrwa6JL/asmWLVqxYoU2bNnkuOXv//fcDXZZffPPNN8rI\nyFBiYqLy8/P12GOPef4SdSKn3Svs22+/1a233qqkpCRNmzZNc+bMcdw5o2effVYPPfSQRo4cqe7d\nu2vatGmBLsmvTp8+rY0bN2ry5MlX3M6Wl7ICAKxly5EDAMBahAMAwIRwAACYEA4AABPCAQBgQjgA\nAEwIB8CLjIwMffDBBy0eW7x4sR544IHLbp+enq4dO3Z0RGmAZQgHwIu8vDytWrWqxWOrV69u9aZl\nLpfLcZPfEHwIB8CLnJwcvfPOO2pqapIk1dTU6Ouvv9bKlSuVkpKim266SX/+858vu2/Pnj09P7/5\n5pu69957JUnHjx/XU089pZtvvllTpkzRrl27rG8EaAPCAfAiPDxcqampevfddyVdvNXx1KlT9fTT\nT6uqqkqlpaV65ZVXdPr0adO+l44gLv15yZIlSkpK0pYtWzRv3jw9+eST1jcCtAHhAPjg0kNLq1ev\nVl5enj744ANlZmbK7XarurpamzZtuuJrXHqnmrfeekvz58+X2+3W9OnTtXfvXsd+bwDsKSTQBQB2\nkJ2drUceeUQ7d+7UmTNnFBsbq5ycHH300Ue6/vrr9atf/UrHjx837de1a1fPz8eOHfP8fOHCBa1b\nt06DBg3qkPqBtmLkAPigZ8+euu2223TvvfcqPz9fx48fV2hoqAYMGKADBw7oww8/vOx+I0eO1LZt\n23T69GmtXr3ac2gpPz9fRUVFOnfunCRxzgGdDuEA+CgvL0+fffaZ8vLyNHDgQOXk5Gj48OGaPXu2\nsrKyLrvP3LlzVVhYqIyMDCUnJ3senz17tsLCwnTLLbfohhtu0LJlyzqqDcAn3LIbAGDCyAEAYEI4\nAABMCAcAgAnhAAAwIRwAACaEAwDAhHAAAJgQDgAAk/8H0d/n57T31G8AAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 49 } ], "metadata": {} } ] }