Prog.Hu

Tippmix
50

2013-09-08T23:59+02:00
Alonso
AlonsoProg.Hu
regisztrált tag
Sziasztok !

Írtam egy kis tippmix programot. A tippmix olyan játék, hogy sporteseményekre lehet fogadni, hazai győzelemmel, döntetlennel vagy vendéggyőzelemmel.
Az egyes lehetséges eredményeknek oddsai vannak, ami azt jelenit, hogy ha eltalálod az eredményt, akkor az arra az eredményre feltett pénzed odds-szorosát kapod vissza. Tehát pl. MTK-UTE focimeccs esetén mondjuk
MTK győzelem 1.3x pénzt fizet, döntetlen 2.3szoros pénz, és UTE győzelem 3.5szeres pénz. Ekkor ha felteszek 200 Ftot az MTK-ra, és nyer az MTK, akkor
200*1.3, azaz 260 Ftom lesz (a 200at befizetem a fogadáskor, és vagy eluszik, vagy a szorzoval növelt pénz jön vissza). A kérdésem az, hogy a "várható értéke" a fogadésnak nem annyi (legyen odds1, odds2, odds3 a három szrozó, x a feltett pénz (ezt felbontom x1,x2,x3-ra mert 3 szelvénnyel akarok fogadni, minden eseményre teszek - azaz x=x1+x2+x3)), hogy :

varhato ertek=x1*odds1*prob1+x2*odds2*prob2+x3*prob3*odds3,


ahol a prob1...prob3-at az indulo oddsokbol kapom ?

Tehát a fenti példánál MTK esélye 1.3/(1.3+2.3+3.5).

Valszeg sose lesz olyan meccs, ahol a siker tuti, ha 3 szelvénnyel játszok, de veszteség minimalizálás érdekel.
Mutasd a teljes hozzászólást!
Tippmix
2013-09-08T23:59+02:00
Alonso
AlonsoProg.Hu
regisztrált tag
Nem kell ide egy játékra számítógépes kód, hiszen egy program sem tud kiszámolni egy ismeretlen valószínűséget. Szóval egy illetve három játékra már elmondtam mi egy optimális stratégia, ez van két tippnél is:

első kettőre fogadva csak a cég oddsait felhasználva 1/x1 illetve 1/x2 legyen a két tippre fogadott pénz, ekkor 1-et nyerünk 1-p3 valószínűséggel és 1/x1+1/x2-t feltett pénzt elveszítjük, azaz várható nyeremény:
1-p3-1/x1-1/x2 , ha ez pozitív akkor nyersz.
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!

Ezt elég jól ismerem, tippmix matematikája a következő:
legyen három kimenet, x1, x2, x3 szorzókkal.
Ez azt jelenti, hogy a cég is tippel, hogy milyen az egyes események valószínűségei, hiszen ezt persze senki nem ismeri, (kivéve, ha bunda van ). A cég szorzóiból viszont meg lehet kapni az általa tippelt valószínűségeket is! Ezek a következők:
1/x1, 1/x2, 1/x3, hiszen akkor van egyensúlyban, ha a várható nyeremény egy, ez pedig p valószínűség mellet p*x1-1=0 egyenletet jelent, azaz p=1/x1, ez kellett. Persze a valódi vlószínségeket a fogadó sem ismeri, akkor számára mi lenne az optimális játék? A következő: használja a cég áltál adott valószínűségeket és ilyen arányban tippeljen, azaz az első esetre 1/x1 forintot, másodikra 1/x2, harmadikra 1/x3 forintot tegyen fel, ekkor várható nyereménye, sőt pontos nyereménye is mindig egy forint, bármi is következik be, és veszít 1/x1+1/x2+1/x3 forintot, így a tippmixen van nyerő stratégia, ha 1/x1+1/x2+1/x3<1 teljesül. Ez a te példádban nem igaz:
1/1.3+1/2.3+1/3.5=1.49>1, így nem lehet tutira játszani. ((Máshol azért jobb oddsokat adnak)). Vagy az egyéni tippeket nézve mikor nyersz, ha a valódi valószínségeknél:
p1>1/1.3=0.77, azaz MTK 77%-nál nagyobb vszg-gel nyer, akkor várható nyereményed pozitív lesz, ha ráfogadsz.
p2>1/2.3=0.44, azaz döntetlen 44%-nál nagyobb vszg-gel, akkor megint várható nyeremányed pozitív lesz, ha rá fogadsz.
p3>1/3.5=0.29, azaz, ha 29%-nál nagyobb vszg-gel veszít az MTK, akkor megint pozitív a várható nyereményed, ha erre fogadsz.
Mutasd a teljes hozzászólást!
Tehát a fenti példánál MTK esélye 1.3/(1.3+2.3+3.5).

Ez hülyeség, hisz ebben az esetben az MTK az esélyes...
De akkor mi a várható érték ?
Mutasd a teljes hozzászólást!
Kis javítás: egyensúlyban lesz, ha a várható nyeremény nulla (és nem egy, ezt rosszul írtam!!!).
Mutasd a teljes hozzászólást!
Oké, ksözi most olvasom a hozzászólásod
Mutasd a teljes hozzászólást!
nem teljesen értem a problémádat!
Mint játékos, vagy mint tulajdonos akarod minimalizálni a költségeidet?
Mutasd a teljes hozzászólást!
Mint játékos. De persze nem fogok 3 szelvénnyel 3 különbőző végkifejletre fogadni, hisz tutira vesztek, Csak fel akarom mérni, hogy mekkorák a veszteségek. De sose fogom ezt igy játszani
Mutasd a teljes hozzászólást!
Oké, értem az 1/x1, stb. számításának jelentését, de nem értem, hogy pl. ha konkrétan a fenti eseményre fogadok, akkor a "várható érték" függ attól is, hogy mit teszek fel. Nem igaz ? Össze keveredtek a betűink, mert x-et a pénznek használtam, nem az oddsnak, Mindegy. Legyen akkor 1/x1, 1/x2,1/x3 az általad leirt százalákos esély, és nem a pénz. A várható érték ekkor nem a következő :

v. érték=(1/x1)*penz1+(1/x2)*penz2+(1/x3)*penz3 ?
Mutasd a teljes hozzászólást!
Én mind a 3 eseményre akarok tenni elméletben (3 szelvénnyel), tehát nem csak egyre.
Mutasd a teljes hozzászólást!
Igen a jelölésben én mást használtam.Nem jó amit írsz, mert x1,x2,x3 az oddsokat jelöli, így penz1, penz2, penz3 feltett pénz esetén a várható nyereményed:
p1*x1*penz1+p2*x2*penz2+p3*x3*penz3-penz1-penz2-penz3 ahol p1,p2,p3 az események pontos valószínűségei.
Mutasd a teljes hozzászólást!
Oké. Valami olyan a diszkrét várható érték képlet, hogy (nem akarok itt most spéci karaktereket használni)

szumma esemény(i.) bekövetkezésének valószinüsége*esemény(i.) értéke
És akkor itt az odds*penz lesz esemény értéke, ugye ?

Az odds1 és a p1 függy egymástól. A p1-et akkor most hogy kapom ? Nem irhatok 1/x1-et p1-re,mert akkor máris egyszerűsitek a képletedben...
Mutasd a teljes hozzászólást!
Tehát nem irhatom, hogy p1=1*x1, mert akkor

p1*x1*penz1=penz1 lesz
Mutasd a teljes hozzászólást!
Igen odds*penz a kifizetett pénz összege, ha az esemény következik be.
Nem írhatsz p1 helyébe 1/x1-et, hiszen ezt nem ismerjük, de itt láthatod, hogy miről van szó: ha úgy fogadsz, ahogy mondtam, penz1=1/x1, penz2=1/x2, penz3=1/x3, akkor ezeket beírva a várható nyeremény:
p1+p2+p3-1/x1-1/x2-1/x3=1-(1/x1+1/x2+1/x3), hiszen p1+p2+p3=1 (teljes eseménytér) és nyersz, ha ez pozitív, azaz 1/x1+1/x2+1/x3<1, amit írtam korábban.

Illetve egyetlen eseménynél, mondjuk az elsőre fogadva:
p1*x1*penz1-penz1=penz1*(p1*x1-1)>0 azaz p1>1/x1 esetén lesz pozitív a várható nyereményed, ezt is írtam korábban.

Egyszerű dolgokról van szó, mégis meglepő, hogy szinte senki nem érti a tippmix mögötti matematikát.
Mutasd a teljes hozzászólást!
Áhh,öreg vagyokj én már ezekhez. Nézzünk egy mai eseményt, negyed 8kor.
Bochum-Stuttgart

Hazai : 2.7x
Döntetlen : 2.85x
Vendég : 1.9x

Ha felteszek konkrétan 400at Hazaira, 500at döntetlenre, és
100at Vendégre, akkor mennyi a várható érték ?
Mutasd a teljes hozzászólást!
Ha p1,p2,p3 a pontos valószínűségek, akkor:
2.7*400*p1+2.85*500*p2+1.9*100*p3-400-500-100=
1080*p1+1425*p2+190*p3-1000 ez a várható nyereményed.
Persze ez így nem sok infó, hiszen mi p1,p2,p3 értékeket
nem ismerjük.

ps. 1/2.7+1/2.85+1/1.9=1.25>1, azaz a tuti módszer nem müködik,
egyébként pont ennyi 1.2-1.25 körül szokott lenni a reciprokösszeg szinte mindig (ha három fogadás van), ez egyébként azt is jelenti, hogy átlagos nyereménye a feltett pénzek 20-25%-a a cégnek.
Mutasd a teljes hozzászólást!
Köszi. Ez most a programom erre vonatkozólag :

Mutasd a teljes hozzászólást!

// TippMix.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
 #include <iostream.h>

int main(int argc, char* argv[])
{
        double oddsok[3];
        int k;
        double bet1,bet2,bet3;
        double prob1,prob2,prob3;
        double result;
        double result1,result2,result3;
        for(int i=0;i<3;i++)
        {
                cout <<"Kérem az ";cout << i+1; cout <<" oddsot : ";
                cin >> oddsok[i];
        }
        prob1=oddsok[0]/ (oddsok[0]+oddsok[1]+oddsok[2]);
        prob2=oddsok[1]/ (oddsok[0]+oddsok[1]+oddsok[2]);
        prob3=oddsok[2]/ (oddsok[0]+oddsok[1]+oddsok[2]);
        prob1=1/oddsok[0];
        prob2=1/oddsok[1];
        prob3=1/oddsok[2];
        cout <<prob1;
        cout <<prob2;
        cout <<prob3;

/*        for(i=0;i<3;i++)
        {
       
                cout << oddsok[i];
        }*/
        for(i=0;i<11;i++)
                for(int j=10-i;j>=0;j--)
                { bet1=100*i;
                        bet2=100*j;
                        bet3=1000-bet1-bet2;cout << "Tétek H,D,V : ";
                        cout <<bet1;cout <<"   ";cout << bet2; cout <<"    ";cout <<bet3;
                        cout << "    Varhato ertek : ";
                        result= bet1*prob1*oddsok[0]+bet2*prob2*oddsok[1]+bet3*prob3*oddsok[2]-1000;
                        cout << result;
                        cout <<"\n";
                }






        return 0;
       
}

Nyilván nem jó a leirtak ismeretében, hisz nekem a resultban lesz egy egyszwrüsités, a prob1-et annak reciprokával szorzom. De ezek szerint nem lehetne valami olyat elképzelni, hogy a valós p valószinüségeket az ismert oddsokhoz kötjük ? S ha nem ismerjük p-t, akkor tulajdonképpen azt sem tudjuk megmondani, hogy pl. a Stuttgart meccsen mondjuk melyik esemény bekövetkezésének legnagyobb a valószinüsége (hisz az odds nem határozza meg a valószinüséget)? Szerintem amelyik odds a legkisebb, az a legvalósznübb esemény. Nem lehet felvenni hasraütéssel valami egymással később arányban lévő p1 értéket, amiből majd aztán az oddsok ismeretében p2 és p3 megállapitható ?
Mutasd a teljes hozzászólást!
Valóban nem jó, sőt elvi hibás is: 1/x1+1/x2+1/x3 lenne a valószínűségek összege, ez pedig olyan 1.2-1.25 a tippmixben, holott egynek kéne lennie!
Az viszont valóban igaz, hogy a legkisebb odds-ú eseményt tekinthetjük a legnagyobb valószínűségűnek, hiszen erre a cég 1/odds-ot tippeli és ez akkor a legnagyobb, ha az odds a legkisebb.

Egyébként dinamikusan frissítik az oddsokat a tippmixnél, és pont a leírt algoritmus szerint, a feltett pénzek arányában számolják ki az új oddsokat, így a Szerencsejáték rt. ezzel a játékkal elméletileg sem bukhat.
Mutasd a teljes hozzászólást!
Oké, dinamikusan frissitenek, de a frissités már csak egy következő eseménynél lehet, nem igaz ?
Ha egyszer egy meccs oddsai le vannak irva, akkor az nem változhat... Max a lóversenypályán. Szóval a tippmixen mondjuk ha van két esemény (és az eseményekre még nincs fogadás, csak elemzik az eseményeket), és nahyjából ugyanannyinak gondolják at esélyeket (azaz a hazai mindkettőnál szerintük azonos valószinüséggel következik be, stb.), akkor az időben később fpgadható esemény oddsai a korábbi elméletileg a másik eseménnyel azonos valószinüségek a korábbi esemény konkrét fogadásainak megfelelően változnak ?
Pl. Chelsea - Manchester (hazai, dont, vendeg) 1.5 2.5 3.5
ls
Norwich - Liverpool 1.5 2.5 3.5,

akkor az időben a második meccs oddsai még a fogadási nap kiirása előtt modosulhatnak, az első meccs fogadása alapján ?
Mutasd a teljes hozzászólást!
Ha fogadsz adott odds-al és nyersz, akkor a fogadott odds-al szoroznak, nem az aktuálissal. Nyilván azért nagy a mozgástere, hiszen olyan 25%-os profitnál nem kell állandóan módosítani az odds-okon, bár a nagyobb fogadólapokon szinte percenként, de van úgy, hogy másodpercenként módosul az odds.(többen fogadnak).

Nyilván egy korábbi meccs ilyen szempontból nem lényeges csak az a fontos, hogy milyen arányban tippelnek a fogadók. Kivéve, ha a két tipp összefügg, mert, akkor kötéstiltás van. Nem lehet egyszerre fogadni arra, hogy a Ferrari nyeri a futamot és arra, hogy Schumacher nyeri a futamot.
Mutasd a teljes hozzászólást!
Köszi. S a leirt kodomat a result résznél hogyan módositanád, hogy a célomnak megfeleljen ? Én arra akarok játszani, hogy a 3 esemény közül csak kettőre fogadok, és remélem, nem a harmadik következik be. Több, mint 50 százalék ilyenkor az esélyem a nyerésre, de nem 100 %.
Mutasd a teljes hozzászólást!
számszerüsiteni akarok a dolgokat. Szóval nem lehetne valamit kezdeni az ismeretlen valószinüségekkel ?
Mutasd a teljes hozzászólást!
Nem kell ide egy játékra számítógépes kód, hiszen egy program sem tud kiszámolni egy ismeretlen valószínűséget. Szóval egy illetve három játékra már elmondtam mi egy optimális stratégia, ez van két tippnél is:

első kettőre fogadva csak a cég oddsait felhasználva 1/x1 illetve 1/x2 legyen a két tippre fogadott pénz, ekkor 1-et nyerünk 1-p3 valószínűséggel és 1/x1+1/x2-t feltett pénzt elveszítjük, azaz várható nyeremény:
1-p3-1/x1-1/x2 , ha ez pozitív akkor nyersz.
Mutasd a teljes hozzászólást!
Oszd meg másokkal is!