Forum » Znanost in tehnologija » Napovedovanje randoma [statistika]
Napovedovanje randoma [statistika]
antonija ::
Zadnjic sem gledal eno oddajo Derrena Browna v kateri mozakar trdi naslednje:
Dva igralca igrata igro s "postenim kovancem". Igralec 1 prvi napove zaporedje treh binarnih vrednosti (boolean TRUE oz. FALSE). Vsakic ko pade to zaporedje igralec 1 prejme eno tocko. Igralec 2 napove svoje zaporedje (obvezno) drugi po algoritmu:
***"vzemi drugo napovedano vrednost igralca 1 in jo zamenjaj (iz TRUE v FALSE in iz FALSE v TRUE). Koncno izbrano zaporedje bo:
1. Obrnjena druga vrednost
2. prva vrednost
3. druga vrednost"
Vsakic ko pade to zaporedje igralec 2 dobi eno tocko.
Prvi igralec ki zbere 10 tock zmaga.
Trditev g. Browna je da igralec 2 _vedno_ zmaga in to s kar posteno prednostjo, ki mu jo zagotavlja statistika. Ima mogoce kdo kaksno idejo kako bi se to dalo matematicno dokazati?
***V pythonu bi tisto premetavanje izgledalo nekako takole (igralec 1 == player in izbere list s tremi vrednostmi; igralec 2 == oponent in izracuna svojo kombinacijo):
player = [val1, val2, val3]
opponent = [not val2, val1, val2]
Zadevo sem sprobal v pythonu (uporabil sem random.randint(0,1) listo 1000 vrednosti) in je igralec 2 vedno zmagal, pa me firbec matra zakaj? Zakaj je tako zaporedje vedno bolj verjetno kot tisto prvo?
Dva igralca igrata igro s "postenim kovancem". Igralec 1 prvi napove zaporedje treh binarnih vrednosti (boolean TRUE oz. FALSE). Vsakic ko pade to zaporedje igralec 1 prejme eno tocko. Igralec 2 napove svoje zaporedje (obvezno) drugi po algoritmu:
***"vzemi drugo napovedano vrednost igralca 1 in jo zamenjaj (iz TRUE v FALSE in iz FALSE v TRUE). Koncno izbrano zaporedje bo:
1. Obrnjena druga vrednost
2. prva vrednost
3. druga vrednost"
Vsakic ko pade to zaporedje igralec 2 dobi eno tocko.
Prvi igralec ki zbere 10 tock zmaga.
Trditev g. Browna je da igralec 2 _vedno_ zmaga in to s kar posteno prednostjo, ki mu jo zagotavlja statistika. Ima mogoce kdo kaksno idejo kako bi se to dalo matematicno dokazati?
***V pythonu bi tisto premetavanje izgledalo nekako takole (igralec 1 == player in izbere list s tremi vrednostmi; igralec 2 == oponent in izracuna svojo kombinacijo):
player = [val1, val2, val3]
opponent = [not val2, val1, val2]
Zadevo sem sprobal v pythonu (uporabil sem random.randint(0,1) listo 1000 vrednosti) in je igralec 2 vedno zmagal, pa me firbec matra zakaj? Zakaj je tako zaporedje vedno bolj verjetno kot tisto prvo?
Statistically 3 out of 4 involved usually enjoy gang-bang experience.
antonija ::
Vsako od 8ih zaporedij naj bi bilo enako verjetno. TTT in FFF sta enako verjetna kot vsa druga zaporedja.
Statistically 3 out of 4 involved usually enjoy gang-bang experience.
Postopac ::
Ah, my bad. Se posipam s pepelom.
Gre za Penney Ante igro s kovancem, matematicna razlaga je tu.
Gre pa za to, da lahko drugi igralec glede na izbiro prvega igralca izbere niz, ki se zgodi tik pred nizom prvega igralca.
Primer:
Prvi igralec izbere niz TTT:
...TTT...
Ker je to prva pojavitev takega niza, mora biti pred tem nizom obvezno F. Torej drugi igralec zmaga, če napove FTT. Razen v primeru da je niz TTT čisto na začetku serije. Za to pa je verjetnost 1/8, kar da drugemu igralcu 7/8 verjetnost za zmago.
Isto velja za ostalih 7 nizov, ki pa se lahko vsi spravijo v zgoraj omenjeni algoritem.
Gre za Penney Ante igro s kovancem, matematicna razlaga je tu.
Gre pa za to, da lahko drugi igralec glede na izbiro prvega igralca izbere niz, ki se zgodi tik pred nizom prvega igralca.
Primer:
Prvi igralec izbere niz TTT:
...TTT...
Ker je to prva pojavitev takega niza, mora biti pred tem nizom obvezno F. Torej drugi igralec zmaga, če napove FTT. Razen v primeru da je niz TTT čisto na začetku serije. Za to pa je verjetnost 1/8, kar da drugemu igralcu 7/8 verjetnost za zmago.
Isto velja za ostalih 7 nizov, ki pa se lahko vsi spravijo v zgoraj omenjeni algoritem.
jernejl ::
To, da igralec 2 vedno zmaga, ni res. Če npr. igralec 1 izbere zaporedje "TTT", potem igralec 2 po algoritmu izbere "FTT". Če pošteni kovanec da zaporedje "TTTTTTTTTTTTTT...", bo igralec 1 zmagal.
Res pa je, da je verjetnost zmage drugega igralca večja. Kot že omenjeno, gre za to, da drugi igralec prehiti prvega.
Za lažje razumevanje si lahko igro poenostaviš: dovolj je, da igrata do ene točke (ni potrebno igrati do 10). Verjetnosti se sicer nekoliko spremenijo, a je igralec 2 še vedno v prednosti.
Zamisli si eno možno izbiro igralca 1, npr. "TTF". Igralec 2 potem izbere "FTT".
Če kovanec mečemo trikrat, dobimo eno izmed osmih možnih zaporedij. Če pade "TTF", zmaga igralec 1 (verjetnost=1/8), če pade "FTT", pa igralec 2 (verjetnost=1/8).
V ostalih primerih zmagovalca ni in potreben je dodatni met kovanca. Pri štirih metih lahko igralec 1 zmaga ob zaporedju "TTTF" (verjetnost=1/16), igralec 2 pa ob zaporedju "TFTT" ali pa "FFTT" (verjetnost=2/16).
Trik je torej v tem, da igralec 1 ne more zmagati ob zaporedju "FTTF", ker ga je v tem primeru že prehitel igralec 2.
Podobno velja tudi za daljša zaporedja, vendar se že tukaj vidi, da ima igralec 2 prednost.
Verjetnost, da zmaga igralec 1, bi tako bila približno 1/8 + 1/16 + 1/32 + ... (velja za primer, če igralec 1 izbere "TTF")
Če bi igralec 1 izbral drugačno zaporedje, npr. "TTT", potem bi bila tudi ta verjetnost drugačna. Igralec 2 bi izbral "FTT". V tem primeru igralec 1 lahko zmaga le, če pade zaporedje "TTT". Če pade kakšno drugačno zaporedje, ki vsebuje F, potem igralec 1 več ne more zmagati. Kakor hitro bosta F-ju sledila dva T, bo igralec 2 zmagal. Pri taki izbiri bi bila verjetnost, da zmaga igralec 1, enaka = 1/8.
Če bi igro nekoliko spremenili, npr: kovanec vržemo 100x in pogledamo, kateri igralec je zbral več točk - v tem primeru bi imela pa oba enake možnosti zmage.
Res pa je, da je verjetnost zmage drugega igralca večja. Kot že omenjeno, gre za to, da drugi igralec prehiti prvega.
Za lažje razumevanje si lahko igro poenostaviš: dovolj je, da igrata do ene točke (ni potrebno igrati do 10). Verjetnosti se sicer nekoliko spremenijo, a je igralec 2 še vedno v prednosti.
Zamisli si eno možno izbiro igralca 1, npr. "TTF". Igralec 2 potem izbere "FTT".
Če kovanec mečemo trikrat, dobimo eno izmed osmih možnih zaporedij. Če pade "TTF", zmaga igralec 1 (verjetnost=1/8), če pade "FTT", pa igralec 2 (verjetnost=1/8).
V ostalih primerih zmagovalca ni in potreben je dodatni met kovanca. Pri štirih metih lahko igralec 1 zmaga ob zaporedju "TTTF" (verjetnost=1/16), igralec 2 pa ob zaporedju "TFTT" ali pa "FFTT" (verjetnost=2/16).
Trik je torej v tem, da igralec 1 ne more zmagati ob zaporedju "FTTF", ker ga je v tem primeru že prehitel igralec 2.
Podobno velja tudi za daljša zaporedja, vendar se že tukaj vidi, da ima igralec 2 prednost.
Verjetnost, da zmaga igralec 1, bi tako bila približno 1/8 + 1/16 + 1/32 + ... (velja za primer, če igralec 1 izbere "TTF")
Če bi igralec 1 izbral drugačno zaporedje, npr. "TTT", potem bi bila tudi ta verjetnost drugačna. Igralec 2 bi izbral "FTT". V tem primeru igralec 1 lahko zmaga le, če pade zaporedje "TTT". Če pade kakšno drugačno zaporedje, ki vsebuje F, potem igralec 1 več ne more zmagati. Kakor hitro bosta F-ju sledila dva T, bo igralec 2 zmagal. Pri taki izbiri bi bila verjetnost, da zmaga igralec 1, enaka = 1/8.
Če bi igro nekoliko spremenili, npr: kovanec vržemo 100x in pogledamo, kateri igralec je zbral več točk - v tem primeru bi imela pa oba enake možnosti zmage.
Zgodovina sprememb…
- spremenil: jernejl ()
Thomas ::
Brown je pretkan manipulant. Sicer bi razložil zadevo, kot jo je jernejl.
Ampak kdor se hoče čudit statističnim "anomalijam", naj prebere kar zgoogla pod ... ah, never mind - Parrondo's paradox @ Wikipedia
Ampak kdor se hoče čudit statističnim "anomalijam", naj prebere kar zgoogla pod ... ah, never mind - Parrondo's paradox @ Wikipedia
Man muss immer generalisieren - Carl Jacobi
lymph ::
Antonija, ne vem kako tebi pride, da drugi zmaguje. Ko sem jaz tole stestiral, je še vedno 50& 50% tudi po 100k poskusih. Razen če narobe razumem problem..
Tukaj je koda, ki sem jo spacal
Tukaj je koda, ki sem jo spacal
<?php for($i = 0; $i < 20000; $i++) { $rand1 = rand(0,1); $rand2 = rand(0,1); $rand3 = rand(0,1); $a1 = rand(0,1); $b2 = rand(0,1); $c2 = rand(0,1); $b22 = $b2; $napoved = "$rand1 $rand2 $rand3"; $prvi = "$a1 $b2 $c2"; if ($b2 == "0") { $b2c = "1"; } if ($b2 == "1") { $b2c = "0"; } $drugi = "$b2c $a1 $b22"; if ($prvi == $napoved) { $file = fopen("1.txt", "a"); fputs($file, "1\r\n"); fclose($file); } if ($drugi == $napoved) { $file = fopen("2.txt", "a"); fputs($file, "2\r\n"); fclose($file); } if ($i == "19999") { $file1 = "1.txt"; $lines1 = count(file($file1)); $file2 = "2.txt"; $lines2 = count(file($file2)); echo "Prvi: $lines1 Drugi: $lines2"; } } ?>
"Belief is immune to counter example."
antonija ::
Meces zaporedje in prvi ki pride do 10 zmaga. V dolgih zaporedjih je bilo tud pri meni priblizno 50:50.
Statistically 3 out of 4 involved usually enjoy gang-bang experience.
lymph ::
Ja no, če je na dolgo zaporedje 50:50 potem je na manjših segmentih enkrat en, drugič drugi. Ne more biti drugače. Ne razumem, kje se tukaj dogaja napovedovanje oz. zakaj naj bi drugi dobival več zmag.
"Belief is immune to counter example."
Zgodovina sprememb…
- spremenil: lymph ()
antonija ::
probej tko da dopolnjujes seznam metov in prvi do 10 zmaga.
Statistically 3 out of 4 involved usually enjoy gang-bang experience.
AtaStrudl ::
Tisto zgoraj deluje v primeru, da meceta po enkrat, in tako postopoma gradita string metov, v katerem po vsakem metu isceta napovedane substringe.
Ce pa vsakic vrzeta 3X, je pa 50:50.
Ce pa vsakic vrzeta 3X, je pa 50:50.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | rabim pomoc naloga c++Oddelek: Programiranje | 710 (578) | kretze |
» | križci krožci c # (strani: 1 2 )Oddelek: Programiranje | 11792 (10451) | Yacked2 |
» | Verjetnosti pri kartah (strani: 1 2 3 4 … 10 11 12 13 )Oddelek: Znanost in tehnologija | 43854 (25061) | itak37 |
» | Matematični problemOddelek: Šola | 1842 (1513) | fifika |
» | [naloga][c++] problemOddelek: Programiranje | 1471 (1299) | StajercSSS |