{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "import matplotlib.pyplot as plt\n", "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "np.random.seed(42)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Part (a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Estimate and plot the number of U(0,1) numbers you can multiply before underflowing." ] }, { "cell_type": "code", "collapsed": false, "input": [ "num_prods = [np.nonzero(np.cumproduct(np.random.random(1000)) == 0)[0][0] + 1 for _ in xrange(200000)]\n", "mean = np.mean(num_prods)\n", "sd = np.std(num_prods)\n", "print \"{0} +/- {1} products before underflowing\".format(mean, sd)\n", "\n", "rounded_mean = np.round(mean)\n", "plt.hist(num_prods, bins=np.arange(rounded_mean - 3*sd, rounded_mean + 3*sd, 4))\n", "plt.title(\"Histogram of the Number of Products Before Underflow\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "746.410685 +/- 27.3135432127 products before underflowing\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 3, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nrmLf8rrfJzg70GOOKpGXl6fc3Nxiy0sKbiePJf3kk0904403qnPnznr88cfl4+OjzMxMrVq1SpLU\nsWNHjRkzRrNmzdJ9991njwN0h8m33npLN910k1q2bKnHHntMeXl5mjFjhhITE7Vu3TrFxcVJOh6o\nUlJSFBkZqQcffFB+fn568cUXFRQUVKwnzbIs/fDDD7r++ut12223adiwYTr33HMlSXPnzlWNGjU0\nduxY1a5dW2vWrNHUqVP1yy+/6M033/RYT1FRkbp166bExEQ9+eSTWrBggcaPH6+goCBNmjRJffv2\n1bXXXquXX35ZI0eOVOvWrdWiRYsyj/Xjjz+ue++9Vx07dtSIESO0fft2zZgxQ6tWrdL69esVGhqq\n+++/X++//77HMSut97RZs2ZKS0tTWlqaRowYofbt20uSLr74YrtMYWGhUlJS1Lx5cz355JP6z3/+\noxdffFF16tTRpEmTirXtuuuu09ChQ7V//34999xzuuKKK/TVV1/Zr0VZfHx89MADD6h///5/2mte\n1rjkkpb/4x//UEFBgW6//Xbt27dPU6ZMUZ8+fXTttdfqo48+0t13362dO3dq2rRpGjVqlP797397\n1M/Ly1PXrl3Vp08f3XjjjXrvvfd0zz33qLCwUBMmTLDLjRo1Si+//LIGDx6s22+/Xb/99ptmzJih\ntWvX2q+Ru415eXm66qqrdN1112nAgAEKCwsrdX9zc3N1xRVXKC8vT6mpqapbt67eeustDRkyRHv3\n7tXYsWPVrFkzvf766xo/frzCwsJ03333SZKaNm1a+kEvhfuPljp16tjtLel9cfjwYXXq1Enfffed\nRo8eraZNm+rDDz/UXXfdpV9++UVPPfWUvc4RI0bo1Vdf1Q033KDk5GT997//VUpKSqnXivL49NNP\n1b17d0VGRio1NVX16tVTZmamFi5cqHvuuUcjR45UVlaWPvvsM49hOREREdq0aZO6d++u5s2ba+LE\niQoMDNSPP/6ojz/+uFzbPnbsmPbs2SNjjI4ePaotW7bovvvuU4MGDdSpUye7XEFBgZKSkrR9+3YN\nHz5cjRs31vr16zVt2jRlZmbq3//+t6KiovT666/rySef1K+//qrp06dL+t+1bvTo0ZozZ4569+6t\nv/3tb/rmm2/03HPP6fPPP9eaNWvsbyPLOq/Ke25WpnfeeUd79uzRyJEj5e/vr+nTp+uaa67Rjh07\n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\nGjZsmMaPH2+v81S+zr/nnnu0YMEC9ezZU2PHjlVMTIz+8Y9/6PPPP9f06dM9evJPVUWGUQ0bNkwv\nvfSShg8frg0bNqhJkyb6+OOPtWjRIo0bN87u5bzooos0aNAgvfLKK9q3b5+SkpL0xRdf6JNPPlFE\nRIRHG1JSUhQXF6dhw4YpMzNT/v7+mj9/frFtW5alF154Qd27d1eLFi10yy23qG7duvrhhx+0du1a\nezjJZZddJkm6/fbb1bVrV/n6+qpXr156+OGHtWLFCnXv3l2xsbHau3evXnjhBQUHB6tnz55/uu/5\n+fl68803ZYzRsWPHtHXrVj3//PMKDAzUPffcY5e7++679dFHH6lPnz4aOHCgLrvsMh0+fFhbtmzR\nO++8o0WLFnncp3Py63HhhRdqxIgRmj17tvLz89W5c2d9++23mjNnjlq3bq0hQ4Z4lC/p9TzVc/Nk\nvr6+mjZtmgYPHqxWrVqpf//+ioiI0DfffKMXX3xRjRs3Lvc16OT2Pfzww1qyZInat2+vMWPGyNfX\nVy+++KIaNmyor7/+2i4XHBysOXPmqH///mrevLluuukmRUdHKysrS8uXL1dwcHC5p7osD/c+l+cz\nRjp+U2dhYaF+/PFHjwDeoUMHPfbYYwoMDNSll15aae1DNVDWlC0rVqwwPXv2NPXq1TOWZZl58+bZ\nzx09etSMHz/eXHzxxSYoKMicc845ZsCAAR5TyxljzKFDh8ztt99uIiIiTFBQkOnVq5fHFHHGGPP7\n77+bgQMHmtDQUBMaGmoGDRrkMUWZMcenVuvRo4cJCgoyERERZuzYsR7TlaF6mDt3rnG5XKVOnzVy\n5Mhi0yUmJSV5TOP2r3/9y3Tr1s3ExMSYmjVrmtjYWHPzzTebn3/+2aPeyy+/bJo0aWJ8fX2Ny+Xy\nmObq/fffN61btzYBAQGmdu3a5tprrzVbtmwp1p6VK1ea1q1bm5o1a5pzzz3XTJ482Tz77LPGsiyz\ne/duu1xcXJzp1q1bifv0+eefm3bt2pmgoCATExNjxowZY09ldmKbhg4dagICAorV79q1a7Gp0Iwx\npkWLFqZt27YlbvNkL730krnoootMzZo1TWRkpBkyZIj59ddfPcq89dZbxuVylWu6RGOMWbhwobno\nootMjRo1jMvlsqc9LG0/3K/9idMXGmPMRx99ZJKTk01ISIgJDAw0559/vrnlllvMl19+Web2T5wu\n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\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Part (b)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I first estimate the mean and variance of log(U). It seems that the mean is -1 and the variance is -1." ] }, { "cell_type": "code", "collapsed": false, "input": [ "log_uniform = np.log(np.random.random(1000000))\n", "mu = np.mean(log_uniform)\n", "var = np.var(log_uniform)\n", "mu, var" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "(-1.0005811922459742, 1.0003386611570766)" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "By the central limit theorem, the sum of N random variables $log(U)$ should be distributed as $\\mathcal{N}(-N, N)$. Experimentally, this seems accurate." ] }, { "cell_type": "code", "collapsed": false, "input": [ "num_sums = 10000\n", "sum_logs = [np.sum(np.log(np.random.random(num_sums))) for _ in xrange(20000)]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "mean = np.mean(sum_logs)\n", "sd = np.std(sum_logs)\n", "print \"{0} +/- {1} (variance {2})\".format(mean, sd, sd**2)\n", "plt.hist(sum_logs, bins=25)\n", "plt.title('Histogram of sum of {0} log(U)'.format(num_sums))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-9998.68065929 +/- 100.524298534 (variance 10105.1345958)\n" ] }, { "metadata": {}, "output_type": "pyout", "prompt_number": 6, "text": [ "" ] }, { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAucAAAIACAYAAAAhRsLyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VNXdx/HvHcISspKQyQBBFg0QUaBFEBAlxBABWcSl\nCjWADxW0rFKK0iqGgliUWpeAQlFAKSpWngouLFaChOSxFIRaBCyKCtiELSSAYc15/uDhPg4JkAjD\nnMDn/XrN6xXOPXPP716SzDd3zj3jGGOMAAAAAASdJ9gFAAAAADiJcA4AAABYgnAOAAAAWIJwDgAA\nAFiCcA4AAABYgnAOAAAAWIJwDlwmkpOT1blz52CXcVlYvny5WrdurZo1a8rj8ejbb78NdkkXzbPP\nPqsrr7xSVatWVaNGjYJdjhWysrLk8Xj08ccfX5TxHnroId1www3ntY82bdro4YcfvkAVAagIwjlQ\nCc2ZM0cej0d///vfy9z+wAMPyOPx//F2HEeO41RonH/961/KyMjQN99886NrvdwUFhbqZz/7mRzH\nUWZmpubNm6fatWsHu6yLYuXKlRo9erTatGmjV155Rc8999wZ+x46dEiPP/64unfvrri4OHk8Hk2Z\nMuWM/fPz85Wenq7Y2FhFRETo5ptv1rp168rs+49//EMpKSmKiIhQ7dq1NWDAAO3evbvMvn/+85/V\nokULhYaGqmHDhsrIyNDx48dL9Tt27JjGjx+vK664QqGhoWrZsqVef/31c5yRi2/79u166aWX9Nhj\nj7ltX3/99VnPb1m/Tx555BFNmzZN+fn5Aa8ZgD/COXCJOj2IL1++XMuWLavQPv71r3/pd7/7HeG8\nAj799FMVFhZq/Pjx+q//+i/169dPNWvWDHZZF8WKFSskSTNnzlR6erp69ep1xr67d+/WxIkTtXHj\nRv30pz+VVPp79pTi4mKlpKRoyZIlGjNmjKZMmaL8/HwlJydr06ZNfn03btyo5ORk7dmzR0899ZRG\njx6td999VykpKTp8+LBf37lz5yo9PV0NGzZUZmamevfurUmTJmnIkCGlahg8eLAmT56s22+/XZmZ\nmapfv75+/vOf67XXXqvQOQq0559/XnXq1FHXrl1LbavIH+d9+vRReHi4pk2bdiHLA1AOIcEuAEBg\nnP7hvyEhP/7HPZgfJHz48GHVqFEjaONX1K5duyRJUVFRQa7k4jt17JGRkefsW7duXX333Xfy+Xz6\n5ptvzjoF5qWXXtKmTZu0atUqd7rGPffco6ZNm+o3v/mN/vu//9vt+5vf/Ebh4eH6+OOPFR0dLUm6\n4YYb1LlzZ82YMUMjR46UJB05ckS//vWvlZqaqkWLFrnPj4mJ0YQJEzR8+HC1atVKkrRu3TrNnTtX\nEydO1G9/+1tJ0qBBg5SSkqJf//rXuvvuu1WtWrWKnKqAOH78uF577TXdd999570vj8ejO++8U3Pn\nztWECRMq/K4bgB+PK+fAZaKsOecLFixQmzZtFBUVpejoaLVo0UITJ06UdPKt7n79+kmSOnfuLI/H\nI4/Ho1dffdV9/qJFi3T99dcrLCxMMTExuv3227Vly5ZSY2dnZ+v66693pw48/fTTmj17dqn52A0b\nNlS3bt20YsUKtWvXTqGhoe5b8YsWLVKPHj2UkJCgGjVqqGHDhnrkkUd09OhRv7EGDhyo0NBQ7dy5\nU7169VJkZKTq1q2rqVOnSpI2b96sW265RREREapfv75mzpxZ7nP48ssvu1Mg4uPjNWDAAP3nP//x\nO8f33HOP3zk71zz/6dOn69prr1V4eLhiY2N13XXXacaMGX7HU1ZwPTUVoazzt2rVKrVp00Y1a9ZU\n8+bNtXTpUknSu+++q1atWqlmzZpq0aKFcnNzy3XcxcXFeuSRR9SwYUPVqFFDjRs31mOPPeZ37j0e\nj1566SX3a4/HowkTJpxxn9WqVZPP55N07j/+3nzzTbVq1cpvHnVMTIz69u2r999/X4cOHZIkHThw\nQB988IH69evnBnNJ6tSpk6655hq9+eabbtuKFSu0Z88eDRs2zG+soUOHynEcLViwwG1bsGCBPB6P\nhg4d6td32LBh2rVrl7Kyss5a/5lkZ2e7028iIyOVlpZW5lS1jRs3KjU1VWFhYapTp44eeeQRLV++\nvNQ89pycHO3atUupqak/qp7T3Xzzzdq+fbvWrl17QfYHoHwI50Altn//fu3Zs6fU4/S376XSc84/\n/PBD3XPPPapVq5Z+//vf66mnnlJqaqpWrVol6WSgORVGfvvb32revHmaN2+ebrrpJknS66+/rttu\nu03Hjx/XE088oREjRmjlypXq0KGDvv76a3ecDRs2KC0tTXl5eRo/fryGDRumWbNm6YUXXih1Nc5x\nHG3dulV33nmnkpOT9cILL6h9+/aSpNmzZ6tatWoaMWKEXnjhBSUnJ2vq1KllXiUsKSlRt27dVLdu\nXT399NNq2rSpxo4dqxdffFFdunTRNddco6efflo+n08PPPCA1q9ff85z/fvf/17333+/YmNjNXXq\nVA0YMEALFizQDTfcoMLCQknSo48+WuqcPfroo2fc58svv6xhw4bp6quv1h//+EdNnDhRbdu21erV\nq0udl/JwHEdfffWV7rnnHt166636/e9/r++//159+vTRq6++qiFDhujuu+/WpEmTlJ+fr9tvv73U\nHzenM8bo9ttv11NPPaXOnTvr2WefVfv27fXEE0+4f4hI0muvvaaUlBRJcr9X7rjjjnLVfTYlJSXa\nsGGD2rZtW2pb27ZtdezYMf3rX/+SJH322Wc6fvz4Gftu2LDB/fep+eqn961du7YaN27sN5993bp1\nuuqqq/wC/w+f++mnn1b4uD7++GM3/D722GMaN26ctmzZok6dOvkF9O+++06dOnXSunXr9Otf/1qP\nPPKI/va3v5V5s2Z2drYkqXXr1hWupyxt2rSRpFLfjwACzACodGbPnm0cxznrw+Px+D2nU6dOpnPn\nzu6/R40aZaKjo01JSckZx3n99deN4zhm5cqVfu1Hjx41Pp/PJCUlme+//95t//TTT02VKlXMvffe\n67b16tXLhIaGmm+//dZt27Nnj6lVq5bxeDzmm2++cdsbNGhgHMcxixcvLlXLD8c5ZdKkScbj8Zgd\nO3a4bQMGDDCO45hJkya5bQcPHjSRkZHGcRzzyiuvuO3fffedCQkJMcOHDz/jOTDGmN27d5vq1aub\nlJQUc+LECbf9nXfeMY7jmEcffdRtO9M5K8ttt91mrr322rP2GTBggGnYsGGp9lPfA2Wdv+zsbLft\n448/No7jmKpVq5ovvvjCbV+wYIFxHMe8/fbbZx1/8eLFxnEcM378eL/2hx56yDiOYz788EO3bciQ\nIcZxnLPuryzbtm0zjuOYKVOmlNq2e/du4ziOycjIKLXtb3/7m3EcxyxcuNAYY8xbb71lHMcxWVlZ\npfo+9thjxnEcs2/fPmOMMUOHDj1jrTfeeKPf/0vz5s1NcnJyqX4nTpwwjuOYESNGnPX4VqxYUep7\nonXr1qZ27dpmz549btvOnTtNRESE6dixo9s2YsQI4ziO+fvf/+62FRcXm6ZNm5baZ3p6uqlVq1ap\n8c92fo35/++lTz75pNS2atWqmSFDhpz1+ABcWFw5ByqxF154QR9++GGpR48ePc753KioKB08eNCd\n8lARa9euVX5+vn75y18qNDTUbW/VqpVSU1P1/vvvS5JOnDih5cuXq1evXqpfv77bLzY2Vj//+c/L\nnM5Qv379Mus/NU5JSYkKCwu1Z88e3XjjjTLGlHnl8he/+IX7dVhYmK6++mpVrVpV/fv3d9vr1Kmj\n+vXr66uvvjrr8X744Yc6evSoHnroIb9VcHr16qWmTZvqvffeO+vzzyQqKkrbt2/XP/7xjx/1/LI0\nbdrUb/rHqau7HTt2VGJiYqn2cx37u+++K4/Ho1/96ld+7WPHjpWkH33s5VVcXCxJql69eqltp+5F\nONWnon2rVq1a5pg1atTwe/epuLi4zH16PB5VrVrV3Wd55eXlad26dRowYIBiY2Pd9rp166pfv37K\nyclRUVGRJOmDDz5Q27Zt3avYp+q7//77S+13z549qlWrVoVqOZeYmBjt2bPngu4TwNkRzoFKrE2b\nNkpJSSn1qFu37jnn8T744INKTExU9+7dlZCQoIEDB/rdGHc2p6atNGvWrNS2pKQkFRQU6MCBA9q1\na5cOHz7sFwpPKatNkho3blxm+8aNG9W9e3dFRESoVq1a8nq9Sk5OlnRyes8PVatWTfHx8X5tUVFR\n8vl8qlKlil97ZGSkCgoKyhzzlLMdb7Nmzfym8VTEww8/rPDwcLVt21ZXXXWVHnzwQXfFkx/riiuu\n8Pt39erVVb16db8/jqT/v2G1PMfu8/lK3eTp8/kUHR0d8JV8Tv1RduTIkVLbTgXoU30q2vfYsWNl\njnn48GG/PzpDQ0PL3GdJSYmOHTvm17c8zvXzY4xxz+s333xToZ+fc/3cn01Z06dKSkq4GRS4yAjn\nwGUqPj5eGzZs0Lvvvqvbb79dOTk5uu2223TrrbcGta6ygk5hYaE6d+6szZs368knn9TixYv14Ycf\nas6cOZJOBogfOlOYOD2Yn3I+geZs451LUlKStmzZorfeekspKSl69913dfPNN+vBBx88575PnDhR\nZvuZjvF8jv1Mfc73vJVHTEyMqlev7nfj7SnfffedpJNXnKWT74RIOmPfmjVruleWT/XNy8srs++p\nfZ7qe2qss40fCBX53qpdu7b27dtXqv30dw1O9/333/v1+6GCgoLLZp1+wBaEc+AyVrVqVXXv3l3P\nP/+8vvjiCz388MP64IMPlJOTI+nMwaBhw4aSVGqN6VNtMTExioiIkNfrVWhoqL744otS/cpqO5NT\nK2vMnTtXI0aM0K233qqUlBQ3YAXauY731PYfo2bNmrrjjjs0c+ZMff311+rXr59mzJjhBsxatWqV\nemdA0o++Wl9RDRs2VF5ennvT6ymn2s7n2MvD4/GoVatW+uSTT0pt++STT1StWjVdc801kqRrr71W\nVatWPWPfli1buv++7rrr3PYf2rNnj7Zt2+auvX6q75dfflnqXYZTz/1h3/I41/eT4zjuOyANGjQo\n989PUlKSioqKStUZFxenmjVravPmzWXWs3nzZr8xT9m+fbuOHz+upKSkch0XgAuDcA5cpsq6wnZq\nXedTYTAsLKzMvtddd518Pp9efPFFv7m5GzZs0PLly9W9e3dJJ6/WdunSRYsWLfJb8m/Pnj2aP39+\nua8Knrrq+8Mr5CUlJXrmmWfK7H+h34bv0qWLqlevrueee86vhsWLF+uLL7740e827N271+/fVapU\n0bXXXivp/6ebJCYmqrCw0G9FmYMHD2ru3LkXZbpBz549ZYzRH//4R7/2p59+WpIuyjstd911lzZs\n2OC3asjevXv1+uuvq2vXru73aWRkpG655RbNnz/f7w+arKwsbdy4UXfddZfblpycrNq1a5f6kJ3M\nzEwZY/z63nXXXSopKdH06dPdNmOMMjMz/aZXlZfP51Pr1q316quv+n0PfPfdd/rzn/+sG264wZ12\n1K1bN61Zs8ZvBZfi4mL96U9/KrXfjh07SlKpexiqVKmitLQ0vffee6WmIe3atUtvvvmmOnToUGpt\n/jVr1kiSOnToUKHjA3B++BAi4DLyw2kIgwYN0t69e3XzzTcrISFBO3fuVGZmpurWratOnTpJOrkk\nm8fj0ZNPPqmCggKFhoaqXbt2atiwof7whz/o3nvv1Q033KB7771XhYWFeuGFF1SrVi13rXRJmjBh\ngpYuXaqOHTvqwQcfVEhIiGbNmqWGDRtq/fr15QqYHTt2VGxsrAYMGKDhw4crJCREf/nLX9z1rc92\nnOfTfkpsbKwyMjI0btw4paamqk+fPtq+fbteeOEFNWrUSGPGjDnnMZQlLS1N8fHxuuGGG+Tz+bR1\n61ZlZmaqRYsWuvrqqyVJffv21SOPPKI+ffpo5MiROnr0qGbPnq34+Hjt2LGjXOOcz/STW2+9VV27\ndtXvfvc7ffvtt7ruuuuUk5Oj+fPnq0+fPu7yiT9GZmam9u/f7wbpjz76yF3accSIEe489wcffFCz\nZs1S79699atf/UqRkZGaPn26jh49qsmTJ/vt88knn9T111+vG2+8UQ8++KD279+vqVOn6uqrr9YD\nDzzg9qtevbqmTJmiQYMGqVevXurVq5f++c9/avr06RowYID7h6p08sp4//799fjjj2v37t265ppr\n9Ne//lUrV67U7Nmzz3hj6dk888wzSk1NVbt27XT//ferpKREL774ok6cOOGuyS+dvPF23rx5uuWW\nWzRixAjFxMTotddec/8g+eHPT7t27eT1erV8+XJ16dLFb7zJkyfro48+0k9/+lMNHjxYjRo10vbt\n2zVr1iwdPHhQf/jDH0rVuHz5ctWvX999lwHARXK2pVwyMzNNixYtTGRkpImMjDTt27c37733nl+f\nxx9/3NStW9eEhoaa5ORks3HjRr/thw8fNsOGDTO1a9c2YWFhplevXn7LnhljzL59+8y9995roqKi\nTFRUlElPTzf79+//cevPAJeB2bNnG4/HU+bSZ8YY88ADD5RaSjE5OdlvKcW3337bdOvWzfh8PlO9\nenXToEEDc99995mvv/7a73kvv/yySUxMNCEhIcbj8Zi5c+e629555x3Ttm1bExoaamrVqmX69Olj\ntmzZUqqejz/+2LRt29ZUr17dXHHFFebJJ580zz//vHEcx+zatcvt17BhQ9OtW7cyj+mTTz4xHTt2\nNGFhYcbn85mhQ4eazz77zDiO41fTwIEDTWhoaKnnd+3a1TRq1KhUe6tWrUz79u3LHPN0s2bNMtde\ne62pXr26iYuLMwMGDDDfffedX5/XX3/deDyeci2lOHPmTJOcnGzi4uJM9erVTePGjc3IkSPN7t27\n/fqtWLHCtGrVylSrVs00btzYPP/882bOnDmllqI80/mrUaOGue+++/zaCgoKjOM4Zty4ceess7i4\n2Dz88MPmiiuuMNWqVTONGjUyjz32mDl69Khfv7K+786mYcOGfkt/ejwe9+sfHpcxxuTl5Zl7773X\nxMTEmLCwMJOSkmL+8Y9/lLnfv//976Zz584mLCzMxMbGmvT0dJOfn19m39dee839P73iiivM+PHj\nzbFjx0r1O3r0qHnsscdM/fr1TfXq1U2LFi3Mn//853Id54oVK8r8nli1apVbZ3h4uOnSpUuZP9Of\nffaZSUlJMaGhocbn85kxY8aYt99+u9QSi8YYM2bMGNOgQYMy69iyZYvp16+f8fl8pmrVqsbr9Zo7\n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\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Part (c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In part (a), I estimated that you can multiply an average of about 746 $U(0,1)$ values before underflowing.\n", "\n", "As we know, adding the log of numbers and then exp'ing them is the same as multiplying the numbers.\n", "In part (b), I showed that the mean of the sum of $N$ $log(U)$ values is $-N$.\n", "Thus we would expect that we could sum about 746 $log(U)$ values before the exp'ing would underflow" ] }, { "cell_type": "code", "collapsed": false, "input": [ "for s in xrange(-740, -750, -1):\n", " print s, np.exp(s)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "-740 4.19955798965e-322\n", "-741 1.53160350211e-322\n", "-742 5.43472210425e-323\n", "-743 1.97626258336e-323\n", "-744 9.88131291682e-324\n", "-745 4.94065645841e-324\n", "-746 0.0\n", "-747 0.0\n", "-748 0.0\n", "-749 0.0\n" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "WHAMMY!" ] } ], "metadata": {} } ] }