Autor Zpráva
Darker
Profil
Mám X mincí. Každá má praděpodobnost P, že padne panna (pro tento příklad se P nemusí rovnat 50). Jak spočítám počet mincí, na kterých pro danou pravděpodobnost P padne panna?
A jak potom děj nasimuluji - tzn. pro náhodné číslo a danou pravděpodobnost určím, kolik pan doopravdy padlo?
panther
Profil
Darker:
kolik pan doopravdy padlo?
kolik pan statisticky melo padnout, ne kolik jich padlo, ze?

At delam, co delam, bud jsem se do zadani, ktere jsem cetl nekolikrat, zamotal, nebo tam nevidim problem.

Pravepodobnost panny = P = .6
Pocet pokusu = Q
Pocet pan = X

X = round(PQ)

Unika mi neco?
Darker
Profil
Ne, máš pravdu. Prostě jsem jen natvrdlej.
Co by mě ale zajímalo je, jak teď nasimuluju pomocí, dejme tomu, Math.random() skutečné házení - vznikne mi tak výsledek, který by sice měl přibližně kopírovat statistické řešení, ale přitom nebude stejný.
panther
Profil
Darker:
Math.random nereflektuje pravdepodobnost. Pokud bude volit mezi dvema hodnotami pomoci Math.random - rekneme 0-0.5 panna, 0.5-1 orel, statisticka pravdepodobnost bude vzdy .5 (pri dostatecne velkem poctu opakovani bude pocet pan a orlu stejny).

Pri tebou zadane pravdepodobnosti, ze padne panna s vetsi pravdepodobnosti nez orel, toto nepujde. Ona taky padne casteji, jen kdyz budes svindlovat, treba magnetizovat, nebo cokoliv. Zkratka jsi vybral spatny priklad, panna/orel musi byt vzdy 50%.
Darker
Profil
panther:
Dobře, tak vezměme dobrý příklad - třeba rozpad na sobě nezávislých atomů. Pro časovoj jednotku (tik programu) má každý atom šanci na rozpad.
Pokud teoretická křivka tedy vlastně vypadá tak, že se za každou jednotku rozpadne P procent atomů.
Ale praktická křivka se musí lišit. A v tomhle případě je docela jedno, jestli je to 50/50 či 10/90.
neutr
Profil
Je to tohle co hledáte?

Možná by to chtělo více povídání, ale je to už starší téma.
Joker
Profil
panther:
Math.random nereflektuje pravdepodobnost. Pokud bude volit mezi dvema hodnotami pomoci Math.random - rekneme 0-0.5 panna, 0.5-1 orel, statisticka pravdepodobnost bude vzdy .5 (pri dostatecne velkem poctu opakovani bude pocet pan a orlu stejny).
No a kdybych ty intervaly dal 0-0.6 a 0.6-1, bude to 60%:40%.

Darker:
Takže jde o to, aby ten výsledek odpovídal statistice, ale stejně jako reálné výsledky měl od ní náhodné malé odchylky? Libovolná implementace bude mít takovou vlastnost.
Ostatně i ten reálný průběh, který se statistice blíží nejvíc (v případě mince a 50:50 by to byl takový, kde při každém hodu padne opačná strana než při předchozím) se bude v některých bodech od teoretické hodnoty odchylovat (například po prvním hodu bude jedna hodnota mít 100% výsledků a druhá 0%).

Pokud jde o:
A jak potom děj nasimuluji - tzn. pro náhodné číslo a danou pravděpodobnost určím, kolik pan doopravdy padlo?
Udělat náhodný výsledek pro každou zvlášť a pak spočítat.
Případně to jde simulovat i vygenerováním náhodného čísla stejným způsobem, jako ten hod mincí.
Příklad:
Mám 5 mincí a každá má pravděpodobnost obou výsledků 50:50.
Tím pádem všechny výsledky jsou stejně pravděpodobné a pravděpodobnost každého z nich je 0.5^5 = 3,125% (poznámka, v reálu se často několik těch výsledků bere jako jeden, například P-P-P-P-O a P-P-O-P-P by se obojí bralo prostě jako 4x panna a 1x orel).
Nechám si vygenerovat náhodné číslo 0-1.
0-0,03125 = O-O-O-O-O
0,03125-0,0625 = O-O-O-O-P
0,0625-0,09375 = O-O-O-P-O
a tak dále.
neutr
Profil
Připouštím, že toto téma není jednoznačné co se týká otázky. Jednotlivá mince má vždy průměrně pravděpodobnost 1:1. Ale "statisticky" provede 1000 hodů za sebou a nebude to 500/500. Pravděpodobnost konverguje na 50%. Pak je otázkou odchylka od této teoretické hodnoty. Ta je největší na začátku - první hod např. orel = 100%. Panna samozřejmě nic. Teprve až padne v nějakém dalším hodu tak se poměr zmenší na řekněme 50/50, a tak dál. Reálná odchylka se mění s počtem následných pokusů. Takže to je jeden výklad části otázky - ale souvisí také s pojmem absolutní a relativní odchyla, rozptyl a podobné věci - také to není tak jednoduché.
Druhá věc je to, že se ptá na "X" mincí současně. To vyjadřuje tabulka, kterou jsem dal do příspěvku. Ta řeší rozpad jak na stejnou pravděpodobnost navzájem vyloučených jevů, tak na nestejnou. Za předpokladu, že jsou pravděpodobnosti stejné, je možné vydávat Tabulku "současnosti X prvků" za obraz x-násobného opakování jediného prvku. "Náhledem pro odchylku" je pak jediný stav - buď orel, nebo panna.
Tohle všechno je zatím jen o "identicky stejných (podobných), ale netotožných prvcích". Pokud se totiž začneme ptát na jednotlivý prvek, je to ještě o variaci. Pro představu budeme házet mincemi s hodnotou 50, 20, 10, 5 a 1 koruna. Pravděpodobnost každé mince je nezávisle 50/50, ale pravděpodobnost kolik peněz sečteme když padnou jen panny je jinde.
Další částí otázky je jak to nasimulovat. Zase malý problém - jak má simulace vypadat? Má to být náhodné házení "y" pokusů a "x" mincí? Tedy bude výchozím údajem x^y? Pokud ne (jde jen o 1 minci) tak se není o čem bavit - je to 50/50 +/- 50 pro první pokus. Chybu neuděláme, když budeme generovat od 50% +/-1 a pro vetší počet mírně větší možnost - například pro > 10 pokusů už +/-2 a podobně.
Joker
Profil
neutr:
Pravděpodobnost konverguje na 50%
S poznámkou, že to je statistická konvergence a ne matematická. Čili občas se může od té hodnoty i vzdalovat (například když první dva hody budou různé, bude výsledek 50:50, zatímco po třetím hodu to bude 66,7:33,3, čili pravděpodobnost se vzdálila od 50%), ale u velkého počtu pokusů je pravděpodobnější, že se bude blížit.

Pořád ale budou řešením ty způsoby co jsem popsal, tedy buď simulovat každý jeden pokus, nebo to vzít jako „jeden velký pokus“ se spoustou intervalů pravděpodobnosti.
neutr
Profil
To ano. Já připouštím, že pro jednu minci je to nějaké parseFloat(n/2)+také zaokrouhlený přírůstek v rozsahu blíže neurčeném, ale závislém na počtu pokusů +/-. Je to samozřejmě hausnumero, a jako takové může posloužit každé jiné - "přiměřeně". Takže pak ten random spouštíme jen pro přiměřené množství tak jako kdyby odchylka byla lineární pro každý případ -r,-2,-1,1,2,r.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0