Autor Zpráva
SEID
Profil *
Zdravim vas, kamarat ma poprosil ci mu nepomozem s prikladom, myslel ze to bude jednoduche ale s odstupom casu som sa zamotal a nevedel sa pohnut, uz to sice ani nepotrebuje ale nemozem nechat priklad rozpocitany

Mame cisla 1,2,3 a pismeno x
Predstavte si to ako ruletu kde x=0

A teda ako vypocitat kolko treba vsadit aby pri pade akehokolvek cisla, alebo pismena x sme boli vzdy v zisku...

1,3 su zaroven farbou ciernou
2 je cervena
X neni ziadna farba...

Mozeme teda vsadit na 3cisla, 1 pismeno ale zaroven aj na farby cervena a cierna..

Vyherna tabulka:
Cierna/cervena 1vsadime 1vyhrame
Cislo/pismeno 1vsadime 8vyhrame

Ako zostrojit kod?

Prisiel som nato ze to bude treba asi cele zacyklit vsetky volby na ktore sa da vsadit, ale ako s podmienkou ked to musim otestovat pre funkcnost toho, ze je jedno ake cislo alebo pismeno padne, ale vzdy budeme v pluse...

Prosim pomoc
Joker
Profil
Tak to je jednoduché, prostě musím vsadit na všechna čísla a na x, nic jiného nedává smysl.

edit:
Jinak to podle čeho se určí ziskovost je pravděpodobnost výhry krát výše výhry.
Tj. třeba sázka (uvažuji vždy 1) na číslo 1 má výhru 9 (1 co jsem vsadil a 8 dalších) s pravděpodobností 1/4 (pokud jsou možnosti 1, 2, 3 a x a vyjde náhodná jedna z nich), takže součin je 1/4 * 9 = 2,25.
Čím vyšší součin, tím lepší, pokud je součin víc než 1, budu dlouhodobě při mnoha opakováních v plusu, pokud menší než 1, budu v mínusu.
SEID
Profil *
Chapem a ak pridam napriklad este stlpce(teraz su 3 stlpce jeden na 1, dalsi na 2 a dalsi na 3), tzn. vsadim na stlpec a vyhram 3 ... Samozrejme -1 co som vsadil ako vypocitat pravdepodobnost v tomto pripade?


// samozrejme ak musim pocitat aj s pravdepodobnostou s cislami a pismenom a taktiez s farbami

Pretoze neviem v com cyklus pridelil napriklad zeton
Joker
Profil
SEID:
ako vypocitat pravdepodobnost v tomto pripade?
Pravděpodobnost výhry (pokud systém hry je výběr jedné možnosti z nějaké množiny a všechny možnosti mají stejnou pravděpodobnost vybrání) se vypočítá snadno: Počet možných výherních výsledků děleno celkový možný počet výsledků.

Tj. když jsou celkem 4 možnosti a v každém sloupci je jen jedno číslo, tj. na výhru musí padnout to jedno, pravděpodobnost výhry je 1/4.
Zatímco třeba u sázky na černou jsou celkem 4 čísla a dvě z nich jsou černá (= výhra), takže pravděpodobnost výhry je 2/4 = 1/2.

Ale ještě je třeba dodat, že strategie s hodnotou vyšší než 1 nezaručuje, že v každé hře získám víc, než jsem vsadil. Zaručuje jen, že dlouhodobě budu v zisku, tj. když ji budu soustavně používat v mnoha hrách (a výsledky budou skutečně náhodné), dohromady získám víc, než jsem vsadil.

Čili kdybych hrál hodně her, najít nejlepší strategii je snadné: Vezmu všechny dostupné, spočítám pro ně očekávanou hodnotu výhry (ten součin) a strategie s nejvyšším číslem je nejlepší (a všechny strategie s číslem vyšším než 1 budou ziskové - jinak samozřejmě u reálných hazardních her typicky žádné strategie s očekávanou hodnotou výhry vyšší než 1 neexistují).

Kdybychom chtěli najít strategii, která by zajistila výhru pokaždé, bylo by to složitější.
V první řadě by bylo potřeba vzít strategie s očekávanou výhrou vyšší než 1 a nakombinovat z nich tolik sázek, aby dohromady pokryly všechny možnosti (tj. ať padne cokoliv, některá ze sázek by vyhrála).
Dále by bylo nutné u každé sázky spočítat, kolik možností pokrývá, a tím vynásobit vsazenou částku.

(K tomu poslednímu kroku, představme si takovou bláznivou ruletu: Nebyla by tam nula, takže jen 36 čísel, půl černých a půl červených. Číslo by vyhrávalo 37x vklad a černá barva 2,5x vklad. Sázka na číslo i na černou barvu mají zjevně očekávanou hodnotu výhry vyšší než 1. Ale sázka 1 na černou a 1 na každé červené číslo zjevně nemusí v každé hře přinést výhru: Pokud padne černá, sice získám 2,5, ale ztratím 18. To protože sázka na černou barvu pokrývá 18 různých hodnot, takže na černou musím vsadit 18x víc, než na jednotlivá čísla.)
mimochodec
Profil
Joker:
Jen taková kuriozita: v 90. letech několik společností rozjelo nějaké loterie. Jedna z nich byla na stejném principu jako sportka, lišila se jen parametricky - počet políček, počet tipovaných čísel atd. Našel se člověk, kterého napadlo si to spočítat a došel k výsledku, že když vsadí všechny kombinace, výhra pokryje všechny náklady a zisk bude dalších skoro 100 %. Zapojil do toho celou rodinu a stihli to asi 10x otočit, než ta firma tu hru stopla. Vždycky jsem si představoval, jak to vyplňování u nich doma asi vypadalo.
SEID
Profil *
Rozumiem, ale teraz mimo prikladu, predstavme si ruletu kde zoberem dva riadky... tzn ruleta bude asi takato:


0
123
456

vytvorim cyklus kde bude testovat: stavku na cislo, stavku na farbu, stavku na hornu a dolnu polovicu, stavku na stlpce, stavku na riadky, stavku na parne a neparne, stavku na dvojice a stavku na stvoricu to znamena ze moznost vkladu cini:
7xcisla,
2xfarba,
2xhorna/dolna,
3xstlpec,
2xriadky,
2xpar/nepar,
10xdvojica,
4xstvorca (pretoze realne sa da stavit aj 1+2+0, 2+3+0)
_______
32 moznych stavok

cyklus bude testovat vsetky mozne vklady az do 3x zeton na ktorekolvek pole:

00000000000000000000000000000001
00000000000000000000000000000002
00000000000000000000000000000003
...
01020100000000031000000000032100
...
az po
33333333333333333333333333333333

kde medzi kazdym jednym budeme testovat ci stavka < vyhra, ale zaroven otestovat ci by to platilo pri akomkolvek padnutom cisle aku podmienku tam zvolit? s tym si neviem dat rady...
Joker
Profil
mimochodec:
Takové hry právě nemají dlouhého trvání :-)

SEID:
Není mi úplně zřejmé, co přesně by to mělo udělat.

Co se týká testování různých podob herního plánu a různých typů sázek, asi bych si si na sázku udělal třídu, která by uměla:
- Získat celkový počet variant sázky (u barvy 2, u sloupců 3, atd.)
- Pro variantu sázky vrátit, která čísla ta varianta pokrývá
- Spočítat velikost výplaty pro variantu sázky a vítězné číslo

Třeba pro klasickou ruletu a sázku na barvu by to vypadalo nějak (pseudokód):

SazkaBarva : Sazka {
  private Barvy = [ [1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36], 
                    [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35]
                  ]
  public getPocetVariant() { return 2; }
  public getPokrytiSazky(varianta) { return Barvy[varianta]; }
  public getVyplata(varianta, cislo) { return (je cislo prvkem Barvy[varianta]) ? 2 : 0}
  
}
SEID
Profil *
aha uz sa zda ze sa priblizujem, dam este jeden priklad a prosim priklad ako vyssie :)

mame napriklad zapas futbalu, mozu sa stat 3 veci vyhra domacich, remiza, vyhra hosti
na kazdu z 3 veci je iny kurz, dajme tomu 1.65 5.32 6.45, ako by sa dalo vypocitat nieco take?

Zastavil som sa na podobnej veci ako hore s tou ruletou...

mam nieco taketo

$vsadene = 0;
for ($vyhra = 0; $vyhra <= 10; $vyhra++) {
   $vsadene = $vyhra;
   for ($remiza = 0; $remiza <= 10; $remiza++) {
      $vsadene += $remiza;
      for ($prehra = 0; $prehra <= 10; $prehra++) {
         $vsadene += $prehra;
         if ($vsadene < ($vyhra * 1.65 + $remiza * 5.32 + $prehra * 6.45)) {
            echo ("Na domacich: " . $vyhra);
            echo ("Na remizu: " . $remiza);
            echo ("Na hosti: " . $prehra);
            }
       }
   }
}

Takisto mi unika ta podstatna myslienka, napriklad tento priklad je urobeny dobre ale co ak je zapasov viac?

Moze padnut tak isto ako na rulete hociktore cislo, prave toto neviem osetrit

Ono program moze fungovat dobre, ale mne ide o prevenciu... napriklad vyhraju domaci, je pekne ze $vsadene > $vyhra ale to len v tom pripade ak sa stane na co je stavene,,, dufam ze uz sa chytas co ti chcem vysvetlit :)

Ale inac DAKUJEM zatial


/// oprava $vsadene < $vyhra
Joker
Profil
SEID:
Opět jsem nepochopil, co ten ukázkový kód má vlastně dělat.

U kurzových sázek by to bylo jednodušší, protože tam není tolik možností sázek jako třeba u rulety.

Jinak samozřejmě pro reálné kurzové sázky taková úloha nemá řešení, protože by se bookmaker musel zbláznit, aby stanovil kurzy, při kterých lze být sázkou na všechny možnosti v plusu při jakémkoliv výsledku.

Ale kdyby taková možnost existovala, stačí najít správný poměr mezi sázkami- pokud budou sázky v tom poměru, bude jedno, jaké konkrétně částky vsadíme.
Označíme si kurzy k1, k2, k3 a sázky s1, s2, s3. Počítáme poměr, takže si jednu sázku můžeme dát jako 1 a dostaneme poměr x:y:1.

Každá sázka musí v případě výhry dát víc než jsme celkem vsadili, tzn.:
s1 * k1 >= s1 + s2 + 1
s2 * k2 >= s1 + s2 + 1
1 * k3 >= s1 + s2 + 1

Z toho vyplývá:
s1 >= (s2 + 1) / (k1 - 1)
s2 >= (s1 + 1) / (k2 - 1)
s1 + s2 <= k3 - 1

A protože z druhé nerovnice vyplývá nejnižší možná hodnota s2, nejnižší možná hodnota s1 bude:
s1 >= ((s1 + 1) / (k2 - 1) + 1) / (k1 - 1)
…a jestli jsem ty převody nezvoral, tak:
s1 >= k2 / ((k1 - 1) * (k2 - 1) - 1)
což možná vypadá složitě, ale když známe kurzy k1 a k2, dostaneme na pravé straně číslo.

Pro ty výše uvedené: 1.65, 5.32 a 6.45
s1 >= 5.32 / ((1.65 - 1) * (5.32 - 1) - 1)
s2 >= (s1 + 1) / 4.32
s1 + s2 <= 5.45

Vyjde (přibližně) s1 >= 2.9425. Takže pro s1, s2 taková, že s1 >= 2.9425, s2 >= (s1 + 1) / 4.32 a zároveň s1 + s2 <= 5.45 bude sázka částek v poměru s1 : s2 : 1 vždy zisková.

Samozřejmě v realistických kurzových sázkách to vyjde nějak: Kurzy např. 1.50, 4.14, 6.20
vyjde s1 >= 10.877, když ale s1+s2 <= 6.2, takže řešení neexistuje.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0