Created
May 22, 2017 21:41
-
-
Save lovasoa/3b68a2f152829eaafed3485a1824bb40 to your computer and use it in GitHub Desktop.
St. Petersbourg: Paradoxe de Saint-Pétersbourg
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
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:3dc04344ff69a0f19fe679be247f5539d84cc0500310e30c6c7f0cc5a4043711" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# [Jeu de Saint-Petersbourg](https://fr.wikipedia.org/wiki/Paradoxe_de_Saint-P%C3%A9tersbourg)\n", | |
"On commence avec une mise de 1\u20ac. On lance une pi\u00e8ce: \n", | |
"\n", | |
" * Si on tombe sur pile, on double la mise et on recommence\n", | |
" * Sinon, on arr\u00eate et on remporte la mise actuelle\n", | |
" \n", | |
"### Quelle est l'esp\u00e9rance de gain \u00e0 ce jeu ?\n", | |
"\n", | |
"$$ \\sum_{i=0}^{i=\\infty} \\frac{2^i}{2^{i+1}} = \\sum_{i=0}^{i=\\infty} \\frac{1}{2} = \\infty $$\n", | |
"\n", | |
"L'esp\u00e9rence du gain est infinie." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import random, math\n", | |
"def lancer():\n", | |
" mise = 1\n", | |
" while random.choice((True, False)):\n", | |
" mise *= 2\n", | |
" return mise" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 47 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"def n_experiences(n):\n", | |
" \"\"\"Joue n fois au jeu, et retourne notre gain total.\"\"\"\n", | |
" return sum(lancer() for i in range(n))/n" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 48 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Que se passe-t-il si on joue un million de fois au jeu ?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"n_experiences(1000000)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 49, | |
"text": [ | |
"15.263239" | |
] | |
} | |
], | |
"prompt_number": 49 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Mince!\n", | |
"On \u00e9tait cens\u00e9s gagner une somme d\u2019argent infinie, en moyenne !\n", | |
"\n", | |
"Et nous n\u2019avons gagn\u00e9 \u00abque\u00bb une dizaine d\u2019euros par lancer en moyenne sur un million de lancer...\n", | |
"\n", | |
"### Pourquoi ?\n", | |
"Essayons de comprendre pourquoi en calculant la probabilit\u00e9 $p_s$ de gagner une somme sup\u00e9rieure ou \u00e9gale \u00e0 $s$ apr\u00e8s un tirage.\n", | |
"\n", | |
"Pour gagner une somme sup\u00e9rieure ou \u00e9gale \u00e0 $2^n$ \u20ac, il faut tirer pile plus de $n$ fois de suite, ce qui arrive avec une probabilit\u00e9 de\n", | |
"$ \\prod_{i=0}^{i=n} \\frac{1}{2} = \\frac 1 {2^n} $.\n", | |
"\n", | |
"Donc $$ p_s = \\frac 1 {2^{\\lceil \\log_2{s} \\rceil }} $$\n", | |
"\n", | |
"Par exemple, pour gagner 100\u20ac, il faut tirer pile sept fois de suite ($\\lceil \\log_2{100} \\rceil = 7$). Cela nous donne une probabilit\u00e9 de gagner plus de 100\u20ac de:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"def p(s):\n", | |
" return 1/2**math.ceil(math.log2(s))\n", | |
"\n", | |
"p(100)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 55, | |
"text": [ | |
"0.0078125" | |
] | |
} | |
], | |
"prompt_number": 55 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Moins de 1% de chance..." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment