Pokerikäsien arviointi

Esimerkiksi PokerStove arvioi muutamassa sekunnin sadasosassa preflop-voittotodennäköisyydet kahden aloituskäden kesken. Kun pakassa on jäljellä 48 korttia, erilaisia viiden kortin yhdistelmiä on (48*47*46*45*44)/(5*4*3*2*1) = 1.712.304 kpl. Tietokoneessani näiden käsien luuppaaminen koodilla

for J := 1 to 44 do
valitse kortti 1
for K := 2 to 45 do
valitse kortti 2
for L := 3 to 46 do
valitse kortti 3
for M := 4 to 47 do
valitse kortti 4
for N := 5 to 48 do
valitse kortti 5
poyta = kortti 1 kortti 2 kortti 3 kortti 4 kortti 5

vie aikaa vajaat 20 sekuntia.

Tavoitteenani on laskea pelaamistani käsistä todennäköisyydet eri panostusvaiheissa, kun showdowniin on edennyt kaksi pelaajaa. Kolme tai useampi ei siis ole välttämätön.

Laskentaan pitäisi saada vauhtia. Millä tavalla sitä pystyisi nopeuttamaan. Esimerkiksi näistä http://forumserver.twoplustwo.com/45/software/7-card-hand-evaluators-597/ jutuista en saa juuri mitään irti. Ne ovat liian vaikeita kotitarveohjelmoitsijalle.
1594
Äänestä

Muut lukivat myös

Vastaukset 1

Vanhimmat

Silmäilepä allaolevaa QBasic-listausta, "väärä tapa" tekee
yli 100-kertaisest i"työtä" verrattuna "oikeaan tapaan".

Delphiä en tunne, mutta oletan FOR-luuppien pyörivän samoin
kuin Basicissakin. Jos näin on, listauksesi ohjelma kehittää
monet "kädet" tarpeettomasti sataan kertaan.

Luuppimuuttujia voi tietenkin käyttää sellaisinaan korttien
paikkojen määrittelyyn, ei niitä tarvitse erikseen sijoittaa
ylimääräisiin muuttujiin.

Pienenä vihjeenä tulevan varalle: Kun olet muutaman vuoden
päästä päässyt vaiheeseen jossa kortteja ja "käsiä" aletaan
vertailla, suosittelen korttien yksilöimistä 13 mittaisilla
yksipainoisten binäärilukujen taulukoilla.
Neljä yksiulotteista taulukkoa, yksi jokaista maata varten,
jokaisessa taulukossa 13 alkiota, joiden ykkösbitin paikka
määrittelee kortin numeron.



Tuon oman listaukseni kehittämien "käsien" määrät
ja ajankulutukset ovat seuraavat:

"Oikea tapa", "käsiä" 2 598 960 kpl, aika 0.49 sek.
"Väärä tapa", "käsiä" 311 875 200 kpl, aika 52.06 sek.

Aikojen suhde : "Väärä tapa"/"oikea tapa" = noin 105.
"Käsien suhde": "Väärä tapa"/"oikea tapa" = 120



REM **********************************************
REM **********************************************

DEFINT A-Z

CLS

DIM kortteja AS LONG
DIM laskuri1 AS LONG
DIM laskuri2 AS LONG


DIM aika1 AS DOUBLE
DIM aika2 AS DOUBLE
DIM aikasuhde AS DOUBLE
DIM laskurisuhde AS DOUBLE

kortteja = 52


REM **********************
REM oikea tapa
REM **********************

aika1 = TIMER
laskuri = 0

FOR J = 1 TO kortteja
FOR K = J 1 TO kortteja
FOR L = K 1 TO kortteja
FOR M = L 1 TO kortteja
FOR N = M 1 TO kortteja

laskuri1 = laskuri1 1

NEXT N: NEXT M: NEXT L: NEXT K: NEXT J

aika1 = TIMER - aika1

PRINT aika1, laskuri1


REM **********************
REM väärä tapa
REM **********************

aika2 = TIMER
laskuri2 = 0

FOR J = 1 TO kortteja
FOR K = 2 TO kortteja
FOR L = 3 TO kortteja
FOR M = 4 TO kortteja
FOR N = 5 TO kortteja

laskuri2 = laskuri2 1

NEXT N: NEXT M: NEXT L: NEXT K: NEXT J

aika2 = TIMER - aika2

PRINT aika2, laskuri2

aikasuhde = aika2 / aika1
laskurisuhde = laskuri2 / laskuri1

PRINT aikasuhde, laskurisuhde

END

REM **********************************************
REM **********************************************

Äänestä

Kommentoi aloitusta


PokerBot kirjoitti:

Esimerkiksi PokerStove arvioi muutamassa sekunnin sadasosassa preflop-voittotodennäköisyydet kahden aloituskäden kesken. Kun pakassa on jäljellä 48 korttia, erilaisia viiden kortin yhdistelmiä on (48*47*46*45*44)/(5*4*3*2*1) = 1.712.304 kpl. Tietokoneessani näiden käsien luuppaaminen koodilla

for J := 1 to 44 do
valitse kortti 1
for K := 2 to 45 do
valitse kortti 2
for L := 3 to 46 do
valitse kortti 3
for M := 4 to 47 do
valitse kortti 4
for N := 5 to 48 do
valitse kortti 5
poyta = kortti 1 kortti 2 kortti 3 kortti 4 kortti 5

vie aikaa vajaat 20 sekuntia.

Tavoitteenani on laskea pelaamistani käsistä todennäköisyydet eri panostusvaiheissa, kun showdowniin on edennyt kaksi pelaajaa. Kolme tai useampi ei siis ole välttämätön.

Laskentaan pitäisi saada vauhtia. Millä tavalla sitä pystyisi nopeuttamaan. Esimerkiksi näistä http://forumserver.twoplustwo.com/45/software/7-card-hand-evaluators-597/ jutuista en saa juuri mitään irti. Ne ovat liian vaikeita kotitarveohjelmoitsijalle.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu