Created
January 13, 2018 00:27
-
-
Save jrjames83/7f2b5466182b4add94f80dc06f170ee9 to your computer and use it in GitHub Desktop.
Gambler's ruin python for youtube video
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": "code", | |
| "execution_count": 11, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Let's say we have 10 bucks\n", | |
| "# each coin toss, we bet $1 on heads\n", | |
| "# how many tosses until we go broke? Will we go broke?\n", | |
| "import random\n", | |
| "random.random()\n", | |
| "import numpy as np" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 41, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# How much can you accumulate before you go broke though?\n", | |
| "\n", | |
| "def integer_walk():\n", | |
| " money, count = 10,0\n", | |
| " max_money = money\n", | |
| "# moneys = []\n", | |
| " while money:\n", | |
| " toss = np.random.random()\n", | |
| " if toss < .50:\n", | |
| " money -= 1\n", | |
| " if toss > .50:\n", | |
| " money += 1\n", | |
| " count += 1\n", | |
| " #moneys.append(money)\n", | |
| " if money > max_money:\n", | |
| " max_money = money\n", | |
| " return (count, max_money)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Simulation 100x\n", | |
| "sims_npy = [integer_walk() for x in range(100)]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 44, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 10,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 11,\n", | |
| " 12,\n", | |
| " 12,\n", | |
| " 13,\n", | |
| " 13,\n", | |
| " 13,\n", | |
| " 13,\n", | |
| " 13,\n", | |
| " 14,\n", | |
| " 14,\n", | |
| " 15,\n", | |
| " 15,\n", | |
| " 15,\n", | |
| " 16,\n", | |
| " 16,\n", | |
| " 16,\n", | |
| " 16,\n", | |
| " 16,\n", | |
| " 16,\n", | |
| " 17,\n", | |
| " 17,\n", | |
| " 17,\n", | |
| " 18,\n", | |
| " 18,\n", | |
| " 19,\n", | |
| " 19,\n", | |
| " 19,\n", | |
| " 20,\n", | |
| " 20,\n", | |
| " 20,\n", | |
| " 21,\n", | |
| " 22,\n", | |
| " 22,\n", | |
| " 22,\n", | |
| " 22,\n", | |
| " 22,\n", | |
| " 22,\n", | |
| " 23,\n", | |
| " 23,\n", | |
| " 23,\n", | |
| " 23,\n", | |
| " 25,\n", | |
| " 25,\n", | |
| " 26,\n", | |
| " 26,\n", | |
| " 26,\n", | |
| " 26,\n", | |
| " 30,\n", | |
| " 30,\n", | |
| " 31,\n", | |
| " 33,\n", | |
| " 35,\n", | |
| " 35,\n", | |
| " 36,\n", | |
| " 37,\n", | |
| " 40,\n", | |
| " 41,\n", | |
| " 41,\n", | |
| " 44,\n", | |
| " 46,\n", | |
| " 49,\n", | |
| " 55,\n", | |
| " 63,\n", | |
| " 67,\n", | |
| " 68,\n", | |
| " 69,\n", | |
| " 79,\n", | |
| " 85,\n", | |
| " 86,\n", | |
| " 95,\n", | |
| " 100,\n", | |
| " 110,\n", | |
| " 120,\n", | |
| " 140,\n", | |
| " 140,\n", | |
| " 272,\n", | |
| " 399,\n", | |
| " 403,\n", | |
| " 730,\n", | |
| " 1758]" | |
| ] | |
| }, | |
| "execution_count": 44, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "# std lib 3.6 random random\n", | |
| "sorted([x[1] for x in sims_npy])" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 30, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "2430.5880000000002" | |
| ] | |
| }, | |
| "execution_count": 30, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "np.mean(sims_npy)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 32, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "text/plain": [ | |
| "[7910,\n", | |
| " 123022,\n", | |
| " 19056,\n", | |
| " 484,\n", | |
| " 22,\n", | |
| " 3310,\n", | |
| " 4588,\n", | |
| " 102,\n", | |
| " 46,\n", | |
| " 830,\n", | |
| " 70,\n", | |
| " 228,\n", | |
| " 302,\n", | |
| " 208,\n", | |
| " 430,\n", | |
| " 29174,\n", | |
| " 1074,\n", | |
| " 484,\n", | |
| " 248,\n", | |
| " 216,\n", | |
| " 184,\n", | |
| " 34,\n", | |
| " 30,\n", | |
| " 482,\n", | |
| " 60,\n", | |
| " 480,\n", | |
| " 294,\n", | |
| " 28,\n", | |
| " 2032,\n", | |
| " 2382,\n", | |
| " 84,\n", | |
| " 76,\n", | |
| " 18716,\n", | |
| " 2592,\n", | |
| " 10,\n", | |
| " 2800,\n", | |
| " 650,\n", | |
| " 11854,\n", | |
| " 1016,\n", | |
| " 42,\n", | |
| " 48,\n", | |
| " 812,\n", | |
| " 10,\n", | |
| " 1830,\n", | |
| " 4186,\n", | |
| " 734,\n", | |
| " 146,\n", | |
| " 578,\n", | |
| " 1796,\n", | |
| " 88,\n", | |
| " 1518,\n", | |
| " 1344,\n", | |
| " 18,\n", | |
| " 3770,\n", | |
| " 32,\n", | |
| " 32184,\n", | |
| " 14214,\n", | |
| " 1080,\n", | |
| " 5898,\n", | |
| " 10194,\n", | |
| " 86,\n", | |
| " 378,\n", | |
| " 2662,\n", | |
| " 4648,\n", | |
| " 666,\n", | |
| " 162,\n", | |
| " 62408,\n", | |
| " 146,\n", | |
| " 2520,\n", | |
| " 762,\n", | |
| " 568,\n", | |
| " 1942,\n", | |
| " 6946,\n", | |
| " 246,\n", | |
| " 100,\n", | |
| " 1758,\n", | |
| " 14718,\n", | |
| " 692,\n", | |
| " 334,\n", | |
| " 2692,\n", | |
| " 30,\n", | |
| " 2748,\n", | |
| " 7544,\n", | |
| " 314,\n", | |
| " 704,\n", | |
| " 3960,\n", | |
| " 494,\n", | |
| " 346,\n", | |
| " 1116,\n", | |
| " 0,\n", | |
| " 31748,\n", | |
| " 7462,\n", | |
| " 576,\n", | |
| " 156,\n", | |
| " 2856,\n", | |
| " 14,\n", | |
| " 1040,\n", | |
| " 64,\n", | |
| " 484,\n", | |
| " 624,\n", | |
| " 212,\n", | |
| " 92,\n", | |
| " 13162,\n", | |
| " 974,\n", | |
| " 14448,\n", | |
| " 9002,\n", | |
| " 818,\n", | |
| " 182,\n", | |
| " 418,\n", | |
| " 3016,\n", | |
| " 668,\n", | |
| " 210,\n", | |
| " 96918,\n", | |
| " 268,\n", | |
| " 59768,\n", | |
| " 224,\n", | |
| " 680,\n", | |
| " 14678,\n", | |
| " 170,\n", | |
| " 28,\n", | |
| " 464,\n", | |
| " 144,\n", | |
| " 6,\n", | |
| " 38,\n", | |
| " 72,\n", | |
| " 68,\n", | |
| " 58,\n", | |
| " 1004,\n", | |
| " 100,\n", | |
| " 294,\n", | |
| " 6102,\n", | |
| " 3810,\n", | |
| " 135370,\n", | |
| " 550,\n", | |
| " 2212,\n", | |
| " 22,\n", | |
| " 140,\n", | |
| " 62,\n", | |
| " 18,\n", | |
| " 8502046,\n", | |
| " 1130,\n", | |
| " 502,\n", | |
| " 1236,\n", | |
| " 114,\n", | |
| " 352,\n", | |
| " 210,\n", | |
| " 110,\n", | |
| " 176,\n", | |
| " 2704,\n", | |
| " 372,\n", | |
| " 848,\n", | |
| " 1500,\n", | |
| " 114,\n", | |
| " 15958,\n", | |
| " 1666,\n", | |
| " 10,\n", | |
| " 462,\n", | |
| " 2264,\n", | |
| " 260,\n", | |
| " 82,\n", | |
| " 196,\n", | |
| " 190,\n", | |
| " 210,\n", | |
| " 422,\n", | |
| " 2,\n", | |
| " 2294,\n", | |
| " 5172,\n", | |
| " 500,\n", | |
| " 4360,\n", | |
| " 14,\n", | |
| " 114,\n", | |
| " 6368,\n", | |
| " 3188,\n", | |
| " 27164,\n", | |
| " 32,\n", | |
| " 106,\n", | |
| " 48,\n", | |
| " 246,\n", | |
| " 194,\n", | |
| " 242,\n", | |
| " 228,\n", | |
| " 152,\n", | |
| " 636,\n", | |
| " 5856,\n", | |
| " 1858,\n", | |
| " 348,\n", | |
| " 270,\n", | |
| " 40,\n", | |
| " 308,\n", | |
| " 40,\n", | |
| " 5322,\n", | |
| " 496,\n", | |
| " 124,\n", | |
| " 384,\n", | |
| " 39810,\n", | |
| " 212,\n", | |
| " 218,\n", | |
| " 716,\n", | |
| " 1368,\n", | |
| " 862,\n", | |
| " 7730,\n", | |
| " 686,\n", | |
| " 248,\n", | |
| " 2816,\n", | |
| " 17230,\n", | |
| " 47656,\n", | |
| " 1614,\n", | |
| " 66,\n", | |
| " 4036,\n", | |
| " 222,\n", | |
| " 1150,\n", | |
| " 220,\n", | |
| " 5560,\n", | |
| " 1784,\n", | |
| " 2508,\n", | |
| " 106,\n", | |
| " 1892,\n", | |
| " 12038,\n", | |
| " 112,\n", | |
| " 690,\n", | |
| " 454,\n", | |
| " 674,\n", | |
| " 180,\n", | |
| " 1660,\n", | |
| " 730,\n", | |
| " 9968,\n", | |
| " 24,\n", | |
| " 968,\n", | |
| " 2702,\n", | |
| " 42,\n", | |
| " 12,\n", | |
| " 136,\n", | |
| " 3092,\n", | |
| " 3698,\n", | |
| " 5768,\n", | |
| " 126,\n", | |
| " 85164,\n", | |
| " 256,\n", | |
| " 144,\n", | |
| " 8792,\n", | |
| " 26,\n", | |
| " 9588,\n", | |
| " 48,\n", | |
| " 244,\n", | |
| " 656,\n", | |
| " 46,\n", | |
| " 5668,\n", | |
| " 332,\n", | |
| " 58,\n", | |
| " 160,\n", | |
| " 1490,\n", | |
| " 62484,\n", | |
| " 118,\n", | |
| " 152,\n", | |
| " 202,\n", | |
| " 2716,\n", | |
| " 320,\n", | |
| " 868,\n", | |
| " 4344,\n", | |
| " 30,\n", | |
| " 4492,\n", | |
| " 424,\n", | |
| " 80,\n", | |
| " 30,\n", | |
| " 1586,\n", | |
| " 514,\n", | |
| " 4184,\n", | |
| " 34,\n", | |
| " 684,\n", | |
| " 6,\n", | |
| " 3404,\n", | |
| " 107633966,\n", | |
| " 440,\n", | |
| " 11408,\n", | |
| " 88,\n", | |
| " 1634,\n", | |
| " 49726,\n", | |
| " 1108,\n", | |
| " 190,\n", | |
| " 80,\n", | |
| " 720,\n", | |
| " 266,\n", | |
| " 956,\n", | |
| " 13758,\n", | |
| " 80,\n", | |
| " 148,\n", | |
| " 82,\n", | |
| " 54,\n", | |
| " 176,\n", | |
| " 182,\n", | |
| " 814,\n", | |
| " 98,\n", | |
| " 190,\n", | |
| " 19254,\n", | |
| " 2876,\n", | |
| " 4032,\n", | |
| " 778,\n", | |
| " 6,\n", | |
| " 52,\n", | |
| " 3830,\n", | |
| " 194,\n", | |
| " 298,\n", | |
| " 1124,\n", | |
| " 88,\n", | |
| " 1172,\n", | |
| " 1234,\n", | |
| " 2230,\n", | |
| " 4440,\n", | |
| " 158,\n", | |
| " 32,\n", | |
| " 6946,\n", | |
| " 14,\n", | |
| " 118,\n", | |
| " 2,\n", | |
| " 1106,\n", | |
| " 56,\n", | |
| " 6678,\n", | |
| " 162,\n", | |
| " 282,\n", | |
| " 3664,\n", | |
| " 450,\n", | |
| " 630,\n", | |
| " 11194,\n", | |
| " 124,\n", | |
| " 570,\n", | |
| " 1920,\n", | |
| " 88,\n", | |
| " 114,\n", | |
| " 1420,\n", | |
| " 208,\n", | |
| " 9921332,\n", | |
| " 3870,\n", | |
| " 1380,\n", | |
| " 4226,\n", | |
| " 3358,\n", | |
| " 64,\n", | |
| " 277960,\n", | |
| " 570,\n", | |
| " 178,\n", | |
| " 18442,\n", | |
| " 202,\n", | |
| " 386,\n", | |
| " 182,\n", | |
| " 534,\n", | |
| " 44,\n", | |
| " 714,\n", | |
| " 3150,\n", | |
| " 12,\n", | |
| " 1228,\n", | |
| " 186,\n", | |
| " 96924,\n", | |
| " 708,\n", | |
| " 1714,\n", | |
| " 42,\n", | |
| " 3498,\n", | |
| " 162,\n", | |
| " 68,\n", | |
| " 36,\n", | |
| " 534,\n", | |
| " 364,\n", | |
| " 116,\n", | |
| " 78,\n", | |
| " 3348,\n", | |
| " 32,\n", | |
| " 58,\n", | |
| " 16,\n", | |
| " 44,\n", | |
| " 18,\n", | |
| " 102,\n", | |
| " 1732,\n", | |
| " 2928,\n", | |
| " 4476,\n", | |
| " 172,\n", | |
| " 252,\n", | |
| " 470,\n", | |
| " 542,\n", | |
| " 8480,\n", | |
| " 94,\n", | |
| " 74,\n", | |
| " 996,\n", | |
| " 210,\n", | |
| " 2881752,\n", | |
| " 2990,\n", | |
| " 412,\n", | |
| " 33230,\n", | |
| " 826,\n", | |
| " 2652,\n", | |
| " 764,\n", | |
| " 2750,\n", | |
| " 107034,\n", | |
| " 280,\n", | |
| " 4242,\n", | |
| " 18,\n", | |
| " 200,\n", | |
| " 68,\n", | |
| " 86,\n", | |
| " 14,\n", | |
| " 7340,\n", | |
| " 84,\n", | |
| " 1300,\n", | |
| " 34,\n", | |
| " 404,\n", | |
| " 12,\n", | |
| " 366,\n", | |
| " 64758,\n", | |
| " 148,\n", | |
| " 172,\n", | |
| " 88,\n", | |
| " 168,\n", | |
| " 46,\n", | |
| " 306,\n", | |
| " 578,\n", | |
| " 116,\n", | |
| " 1068,\n", | |
| " 60,\n", | |
| " 3892,\n", | |
| " 516,\n", | |
| " 17570,\n", | |
| " 546,\n", | |
| " 28472,\n", | |
| " 2632,\n", | |
| " 2256,\n", | |
| " 6,\n", | |
| " 0,\n", | |
| " 1064,\n", | |
| " 188,\n", | |
| " 202,\n", | |
| " 3212,\n", | |
| " 3366,\n", | |
| " 414,\n", | |
| " 339046,\n", | |
| " 232,\n", | |
| " 142,\n", | |
| " 948,\n", | |
| " 254,\n", | |
| " 8090,\n", | |
| " 32,\n", | |
| " 20,\n", | |
| " 246,\n", | |
| " 206,\n", | |
| " 9738,\n", | |
| " 900,\n", | |
| " 7626,\n", | |
| " 240,\n", | |
| " 70836,\n", | |
| " 261130,\n", | |
| " 42,\n", | |
| " 202,\n", | |
| " 1296,\n", | |
| " 82,\n", | |
| " 172,\n", | |
| " 250,\n", | |
| " 70,\n", | |
| " 2730466,\n", | |
| " 110,\n", | |
| " 42,\n", | |
| " 6874,\n", | |
| " 156194,\n", | |
| " 366,\n", | |
| " 11144,\n", | |
| " 3896,\n", | |
| " 3240,\n", | |
| " 300,\n", | |
| " 574,\n", | |
| " 11324,\n", | |
| " 162714,\n", | |
| " 2100,\n", | |
| " 86,\n", | |
| " 721018,\n", | |
| " 1048,\n", | |
| " 5096,\n", | |
| " 60012,\n", | |
| " 732,\n", | |
| " 4570,\n", | |
| " 53706,\n", | |
| " 376,\n", | |
| " 114,\n", | |
| " 910,\n", | |
| " 340,\n", | |
| " 2406,\n", | |
| " 86,\n", | |
| " 66,\n", | |
| " 14,\n", | |
| " 1600,\n", | |
| " 1442,\n", | |
| " 644,\n", | |
| " 1902,\n", | |
| " 258,\n", | |
| " 31038,\n", | |
| " 1068,\n", | |
| " 328,\n", | |
| " 218,\n", | |
| " 270,\n", | |
| " 1002,\n", | |
| " 24,\n", | |
| " 152,\n", | |
| " 50,\n", | |
| " 326,\n", | |
| " 982,\n", | |
| " 894]" | |
| ] | |
| }, | |
| "execution_count": 32, | |
| "metadata": {}, | |
| "output_type": "execute_result" | |
| } | |
| ], | |
| "source": [ | |
| "[abs(x-y) for x, y in list(zip(sims, sims_npy))]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "anaconda-cloud": {}, | |
| "kernelspec": { | |
| "display_name": "Python [conda env:3point6]", | |
| "language": "python", | |
| "name": "conda-env-3point6-py" | |
| }, | |
| "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.1" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 1 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment