28. července 2011 ↴

Vyplatí se loterie?


Občas mám problémy vysvětlit někomu, jaká nebetyčná blbost je sázení v loterii. Lidé stejně nakonec řeknou něco ve smyslu "ale co kdyby to náhodou vyšlo!" Co na to má po několika minutách vysvětlování člověk říct?

"Loterie je daň za blbost", říkají někteří. Nesouhlasím. Chápu, že matematika není pro každého, a některé věci prostě nejsou intuitivní. Dal jsem si proto takové duševní cvičení: jak hloupost loterie vysvětlit co nejjednodušeji a nejvíce pochopitelně. Tady je výsledek:

Jana a Honza se oba chtějí dobrat sumy 20 miliónů Kč (tedy jackpotu Šťastných 10). Jana šetří každý den 10 Kč. Honza si každý den kupuje loterijní lístek Šťastných 10, také za 10 Kč.

Pro našetření této částky bude Jana potřebovat 2 milióny vkladů, tedy 5479 let.

Nicméně: Ve chvíli, kdy má Jana našetřeno (tedy má 20 melounů v kapse), Honza s velkou pravděpodobností (79.9%) ještě nic nevyhrál. Skóre 20 miliónů ku nule.

Aby měl Honza alespoň 50:50 šanci, že vyhraje, potřeboval by sázet 6,177,782krát, tj. až do roku 18,936 n.l. To znamená, že sázení Šťastných deset je trochu jako čekání 17 tisíc let a pak hod mincí. :)

Kdyby chtěl mít Honza skoro jistotu (99% — protože úplnou jistotu nebude mít nikdy), nezbývá mu než sázet 112 tisíc let.

Pro představu, stejný počet let uplnynul od doby neandrtálců po dnes. Za 100 tisíc let bude mnoho dnešních souhvězdí k nepoznání kvůli pohybu hvězd v Galaxii.

Poznámky pro pozorné:
  1. Jana by měla 20 miliónů samozřejmě mnohem dřív — díky úrokům.
  2. Do úlohy na druhou stranu vůbec nepočítám fakt, že Honza může vyhrát i něco menšího než jackpot.
  3. I tak by byl ale výsledek stále o mnoho příznivější pro Janu.

Příklad jsem napsal co nejprimitivněji v Pythonu, abych měl možnost měnit parametry a případné zájemce provést celou logikou. Pravděpodobnost výhry ve hře Šťastných 10 jsem vzal z bakalářské práce Ondřeje Staňka "Loterie". Samozřejmě uvítám jakékoliv opravy či připomínky.


#!/usr/bin/env python
# encoding: utf-8

import datetime
import math

jackpot = 20000000
cena_listku = 10
pravdepodobnost_vyhry = 1.122e-07 # viz http://is.muni.cz/th/78265/prif_b/Loterie.pdf, str. 14

print(u"Jana a Honza se oba chtějí dobrat sumy {jackpot:n} Kč (tedy jackpotu Šťastných 10). Jana šetří každý den {suma} Kč. Honza si každý den kupuje loterijní lístek Šťastných 10, také za {suma} Kč.\n".format(jackpot=jackpot, suma=cena_listku))

pocet_nutnych_vkladu = jackpot / cena_listku
pocet_let_jana = pocet_nutnych_vkladu / 365.0
rok_jana = int(datetime.datetime.now().year + pocet_let_jana)

print(u"Pro našetření této částky bude Jana potřebovat {pocet:d} vkladů, tedy {pocet_let:n} let.\n".format(pocet = pocet_nutnych_vkladu, pocet_let = pocet_let_jana))

pravdepodobnost_prohry = 1 - pravdepodobnost_vyhry

pocet_sazek = pocet_nutnych_vkladu
kumulativni_pravdepodobnost_prohry = pravdepodobnost_prohry ** pocet_sazek
kumulativni_pravdepodobnost_vyhry = 1 - kumulativni_pravdepodobnost_prohry

print(u"Nicméně: Ve chvíli, kdy má Jana našetřeno (tedy v roce {rok} n.l.), Honza s pravděpodobností {p:.1%} ještě stále nevyhrál!\n".format(rok=rok_jana, p=kumulativni_pravdepodobnost_prohry))

fifty_pravdepodobnost = 0.5
pocet_nutnych_sazek_fifty = math.log(fifty_pravdepodobnost, pravdepodobnost_prohry)
pocet_let_honza_fifty = pocet_nutnych_sazek_fifty / 365.0
rok_honza_fifty = int(datetime.datetime.now().year + pocet_let_honza_fifty)

urcite_pravdepodobnost = 0.01
pocet_nutnych_sazek_urcite = math.log(urcite_pravdepodobnost, pravdepodobnost_prohry)
pocet_let_honza_urcite = pocet_nutnych_sazek_urcite / 365.0
rok_honza_urcite = int(datetime.datetime.now().year + pocet_let_honza_urcite)

print(u"Aby měl Honza alespoň 50:50 šanci, že vyhraje, potřeboval by sázet {pocetf:d}krát, tj. až do roku {rokf} n.l. Kdyby chtěl mít skoro jistotu (tj. 99%, úplnou jistotu nebude mít nikdy), nezbývá mu než sázet {let} let.\n".format(pocetf=int(pocet_nutnych_sazek_fifty), rokf=rok_honza_fifty, let=int(pocet_let_honza_urcite)))


Ještě krátká varianta jako "matematický příklad":

Člověk sází 10 Kč denně na Šťastných 10. Jak dlouho musí sázet, aby měl šanci 50:50 (hod mincí), že vyhraje jackpot? Odpověď: 17 tisíc let.


9 komentářů:

Filip Hráček řekl(a)...

Daniel M. Zak píše v diskuzi k článku na Google+:

"koupit si sázenku znamená koupit si poukaz na štěstí - sice časově omezený, ale do losování se lze těšit, kterak výhra promění "obyčejný" život v sen. V takovém kontextu je matematika hodně malá paní."

Naprosto souhlasím.

Jirka Helmich řekl(a)...

Ti, co říkají, že to třeba vyjde, nejspíš stejně jen potřebují mít víru v to, že jim ze dne na den může být líp :) A pokud je to stálo 30 korun za týden při sázení nedělní sportky, tak je to asi lepší než krabička cigaret :)

Ale jinak dobrej článek, budu odkazovat :))

Onasis řekl(a)...

V poznamkach pro pozorne v bodu 3 si vymen slovo "jeste" za "stale". At to nemate ty nepozorne ;)

Filip Hráček řekl(a)...

@Onasis: Díky, změněno.

Tomáš B. řekl(a)...

A já jsem myslel, že to bude článek o tom, jestli je teď dobrý moment založit si konkurenci Sazky.:-)

Podle mě ta argumentace postrádá jednu zásadní hodnotu a to "užitek z těšení se". Lidé si nekupují ani tak šanci vyhrát X miliónů, ale důvod přemýšlet o tom, "co by kdyby".

Na úplně stejném principu fungují dovolené a valná většina startupů. Největší radost z dovolené má většina lidí při jejím plánování a potom při dělání fotoalb. Samotná dovolená je potom často jenom stresující období, kdy se snažíme s ostatními přečkat ponorkovou nemoc.

Filip Hráček řekl(a)...

:) Já nevím, Tomáši, mě příjde, že ti lidi si myslí, že jim to fakt vyjde.

Ale jinak samozřejmě souhlasím, že ve finále nikdo pravděpodobnosti nepočítá, a že to je čistě emocionální koupě.

Milan Kotík řekl(a)...

Víc se mi líbil příklad mého táty, tenkrát byla pravděpodobnost výhry první ceny nějakých 1:38 mil. "Představ si, že ti v Sazce dají za dvacku zalepenou obálku se jménem a údaji o libovolném člověku z Polska. Ty sedneš na vlak, odjedeš do Polska. Libovolně přestoupíš na místní autobus, zajedeš do nějaké vesnice. Vystoupíš na zastávce, jdeš ještě třeba pět minut (jak se ti zachce) na konec vesnice, vejdeš do bytovky, vyjdeš po schodech do druhého patra a zazvoníš na byt vlevo. V bytě jsou rodiče a dvě děti. Ukážeš na starší dítě a otevřeš obálku. Jestli je v obálce BIO určené osoby, vyhráváš Jackpot. Vsadíš si?

evil akuma řekl(a)...

Bohužel je tento článek naprosto hloupý. Pravděpodobnost výhry na každý vsazený tiket je stejná ať je vsázím 100 let, nebo jen jednou. Vysvětlení pro ty méně zdatné jako je i autor a předchozí diskutující: Můžeme se bavit o počtu kombinací, které bych musel vyčerpat na JEDNO tažení čísel abych musel vyhrát. Nemůžeme se ale bavit o nějakém počtu let a vsázení každý den, protože pak je pravděpodobnost vždy stejná bez ohledu na to, jak dlouho vsázíme!

Filip Hráček řekl(a)...

@evil akuma: Myslím, že jste nepochopil článek. Samozřejmě, že je pravděpodobnost každého jednoho tažení vždy stejná (jsou to nezávislé jevy). Tady se bavíme o pravděpodobnosti v mnoha taženích (compound probability).

PS: Vždy mě pobaví, když někdo povyšuje nad ostatní ("pro ty méně zdatné") a záhy se zjistí, že je za blbce on.

Okomentovat