Simulerer Blackjack med MATLAB.

Av Cleve Moler, MathWorks.

Blackjack er det mest popul re kasinospillet i verden. Ved hjelp av en grunnleggende strategi kan en kunnskapsrik spiller redusere kasinoets fordel til mindre enn halvparten av en prosent. Simulering av blackjack-spill med denne strategien i MATLAB ® er bade en l reriktig programmeringsovelse og et nyttig parallelt databehandling.

Blackjack er ogsa kjent som «21.» Malet er a fa en hand med en verdi n r, men ikke mer enn 21. Ansiktskort er verdt 10 poeng, ess er verdt enten 1 eller 11, og alle andre kort er verdt deres numeriske verdi. Du spiller mot forhandleren. Du starter hver med to kort. Kortene dine handteres med forsiden opp; En av forhandlerens kort forblir med forsiden ned.

Du signaliserer «hit» a motta tilleggskort. Nar du er fornoyd med din hand, star du. Dealeren avslorer da det skjulte kortet og fullforer handen. Hvis summen din alltid overstiger 21, er du «bust,» og forhandleren vinner handen uten a tegne noen flere kort.

Forhandleren har ikke noe valg a gjore, og ma trekke pa hender verdt mindre enn 17 og sta pa hendene verdt 17 eller mer. (En variant har forhandleren tegnet til en «myk» 17, som er en hand med et ess telling 11.) Hvis ingen spiller gar bust, vinner handen n rmest 21. Likeverdige totaler er en «push,» og verken vinner.

Det faktum at du kan bytte for forhandleren tar kort er en ulempe som ville v re overveldende, hvis det ikke var for tre ekstra funksjoner i spillet. Pa de to forste kortene dine:

Et ess og et visittkort eller en 10 er en «blackjack,» som betaler 1,5 ganger veddemal hvis forhandleren ikke har 21 Du kan «splitte» et par i to separate hender ved a fordoble innsatsen Du kan «dobbelte ned» en god hand ved a fordoble innsatsen og motta bare ett kort.

Grunnleggende strategi.

Grunnleggende strategi ble forst beskrevet i 1956-papiret «Den optimale strategien i Blackjack,» publisert i Journal of the American Statistical Association av fire forfattere fra Aberdeen Proving Ground. Det presenteres na, med noen fa variasjoner, pa dusinvis av nettsider, inkludert Wikipedia. Strategien forutsetter at du ikke beholder informasjon fra tidligere hender. Spillet ditt avhenger bare av din nav rende hand og forhandlerens kort. Med grunnleggende strategi er husfordelen bare omtrent en halv prosent av den opprinnelige innsatsen.

Mine MATLAB programmer, vist i sidefeltet, bruker tre funksjoner for a implementere grunnleggende strategi. Funksjonen hard bruker oppstillingen HARD for a styre spillet av de fleste hender. Raindeksen til HARD er nav rende totalpoeng, og kolonneindeksen er verdien av forhandlerens opp kort. Returneringsverdien er 0, 1 eller 2, som indikerer «sta» og » & Quot; hit, & quot; eller «dobbelt ned». De to andre funksjonene, myke og par, spiller lignende roller for hender som inneholder et ess verdt 11 og hender som inneholder et par.

Det viktigste hensynet i grunnleggende strategi er a unnga a ga bust nar forhandleren har en sjanse til a ga bust. I vare funksjoner er subarray HARD (12: 16,2: 6) nesten alle null. Dette representerer situasjonen der bade du og forhandleren har darlige hender – din totale og forhandlerens forventede total er hver under 17. Du er fristet til a sla, men du kan bytte, sa du star. Forhandleren ma treffe, og det kan v re bra. Dette er ditt beste forsvar mot huset fordel. Med naivt spill, som ignorerer forhandlerens kort, vil du nesten helt sikkert sla en 12 eller 13. Men hvis forhandleren ogsa viser et lavt kort, sta pa lavt niva og vent til a se om forhandleren gar over 21.

Korttelling.

Korttelling ble introdusert i 1962 i Beat the Dealer, en enorm popul r bok av Edward Thorp. Hvis dekkene ikke omformes etter hver hand, kan du holde oye med antall aces, face cards og nonface cards som du har sett. Nar du n rmer deg slutten av dekket, kan du vite at det er «ti rike» -antalet ess og gjenv rende kort er hoyere enn det som forventes i et nystopt dekk. Denne situasjonen er til din fordel fordi du har en bedre enn vanlig sjanse til a fa en blackjack og forhandleren har en bedre enn vanlig sjanse til a ga bust. Sa du oker innsatsen din og justerer strategien din.

Korttelling gir deg en matematisk fordel over kasinoet. Noyaktig hvor mye av en fordel som er avhengig av hvor mye du kan huske om kortene du har sett. Thorps bok ble fulgt av en rekke andre boker som forenklet og populariserte ulike systemer. Min personlige interesse i blackjack begynte med en 1973-bok av John Archer. Men jeg kan bevise at korttelling er kjedelig, feilaktig og ikke veldig lukrativ. Det er ikke n r sa glamorost – eller sa farlig – som den siste Hollywoodfilmen «21» skildrer det. Og mange spillesteder har na maskiner som kontinuerlig blander kortene etter hver hand, noe som gjor korttelling umulig.

MATLAB-simuleringene.

Mitt originale MATLAB-program, skrevet for flere ar siden, hadde en vedvarende matrise som initialiseres med en tilfeldig permutasjon av flere kopier av vektoren 1:52. Disse heltallene representerer bade verdiene og suitene i et 52-kort dekk. Kl rne er irrelevante i stykket, men det er fint a ha pa skjermen. Kortene deles fra enden av kortstokken, og dekkene omdannes nar det er bare noen fa kort igjen.

Denne funksjonen simulerer troverdig et blackjack-spill med fire dekk dealt uten omplassering mellom hender. Det ville v re mulig a telle kort, men denne shuffleren har to feil: Det simulerer ikke en moderne shuffling maskin, og den vedvarende matrisen forhindrer noen form for parallellisering.

Min siste simulerte shuffler er mye enklere. Det skaper en idealisert mekanisk shuffler som har et uendelig antall perfekt blandede dekk. Det er ikke mulig a telle kort med denne shuffleren.

Jeg har to blackjack-programmer, begge tilgjengelige pa MATLAB Central. Ett program tilbyr et grensesnitt som lar deg spille en hand av gangen. Grunnleggende strategi er uthevet, men du kan gjore andre valg. Figur 1 og 2 viser for eksempel spillet av en sjelden, men lukrativ hand. Du satser $ 10 og deles et par 8s. Forhandlerens opp kort er en 4. Grunnleggende strategi anbefaler a dele paret 8s. Dette oker innsatsen til $ 20. Forstehanden blir deretter delt ut som en 3 for a legge til 8, noe som gir 11. Basisstrategien anbefaler alltid a doble ned pa 11. Dette oker totalbudet til $ 30. Det neste kortet er en konge som gir den forste handen 21. Den andre handen har fatt en 5 til a ga med 8, gir den 13. Du kan v re fristet til a sla 13, men forhandleren viser en 4, sa du star . Forhandleren avslorer en 10, og ma treffe 14. Det siste kortet er en jack, busting dealeren og gir deg $ 30. Denne typen hand er sjelden, men gledelig a spille riktig.

Figur 1. Begynnelsen av et atypisk, men viktig eksempel: Du blir delt inn i et par 8s, og forhandlerens opp kort er en 4. Grunnleggende strategi, uthevet i rodt, anbefaler a dele paret.

Figur 2. Det endelige utfallet. Etter splittingen dobles du ned pa forstehanden og star pa den andre. Dealeren gar busten, og gir deg en sjelden 3x seier.

Mitt andre program spiller et stort antall hender med grunnleggende strategi og samler statistikk om utfallet.

Akselerere simuleringene med parallellcomputing.

Jeg liker a demonstrere parallell databehandling med MATLAB ved a kjore flere kopier av min blackjack simulator samtidig ved hjelp av Parallel Computing Toolbox ™. Her er hovedprogrammet:

Matlabpool-kommandoen starter opp mange arbeidstakere (kopier av MATLAB) pa kjernene eller prosessorene som er tilgjengelige i en multicore-maskin eller en klynge. Disse arbeidstakere er ogsa kjent som laboratorier. De tilfeldige tallgeneratorene pa hvert laboratorium initialiseres for a produsere statistisk uavhengige strommer trukket fra en enkelt global global strom. Hovedprogrammet pa master MATLAB lager en matrise B, og deretter kjorer parforlokken en separat forekomst av sekvensiell simulator, blackjacksim, pa hvert laboratorium. Resultatene kommuniseres til mesteren og lagres i kolonnene til B. Mesteren kan da bruke B for a produsere plottet vist i figur 3. Med «bare» 25.000 hender for hver spiller, er simuleringen fortsatt for kort til a vise den langsiktige trenden. Beregningstiden er omtrent 11 sekunder pa min dual-core laptop. Hvis jeg ikke slar pa MATLAB-bassenget, bruker beregningen bare en kjerne og tar nesten 20 sekunder.

Figur 3. Fire spillere i en parallell simulering. Gronn vinner, rod nesten bryter selv, cyan muddles gjennom, og bla burde ha sluttet mens han var foran.

Dette lop kan ogsa produsere histogrammene vist i figur 4. Den kumulative avkastningen fra de fire spillerne er prikkproduktet til de to vektorene som merker den horisontale aksen. Uoverensstemmelsen mellom frekvensen pa $ 10 seier og $ 10 tap er nesten fullstendig kompensert av hoyere frekvenser av de storre seier over de storre tapene. Gjennomsnittlig avkastning og et mal pa variasjonen er vist i tittelen pa figuren. Vi ser at i lopet av denne lengden dominerer tilfeldigheten av shuffle fortsatt. Det ville kreve lengre lop med millioner av hender for a v re sikker pa at forventet avkastning er litt negativ.

Figur 4. Histogrammer for hver spiller. Innsatsen pa $ 10 er en push 9% av tiden, en $ 10-vinn 32%, og en $ 10 tap 42%. Blackjacks gir $ 15 vinner 4,5% av tiden. De mindre hyppige $ 20, $ 30 og $ 40 svinger kommer fra dobling ned, splitting par, og dobling etter splitting.

Blackjack kan v re en surrogat for mer sofistikerte finansielle instrumenter. Den forste grafen i Figur 5 viser ytelsen til Standard & amp; Poors aksjemarkedsindeks i 2011. Den andre viser at utforelsen av var blackjack-simulering spiller 100 hender om dagen for hver av de 252 dagene aksjemarkedet var apent det aret. S & P dro 14,27 poeng. Var blackjack simulering, som satser $ 10 per hand, mistet $ 3860 i samme periode. Viktigere enn disse endelige resultatene er det faktum at begge instrumentene viser store svingninger om deres gjennomsnittlige oppforsel. Pa kort sikt er aksjemarkedets daglige oppforsel og kortflytende flaks mer innflytelsesrike enn noen langsiktig trend.

Figur 5. Standard & amp; Poors aksjemarkedsindeks over ett ar mot 100 hender av blackjack per dag for samme tid. Kortsiktige tilfeldige fluktuasjoner dominerer enhver langsiktig trend.

MATLAB-funksjoner for grunnleggende Blackjack-strategi.

Referanser.

Produkter brukt.

L re mer.

Se artikler for beslektede muligheter.

Velg ditt land.

Velg ditt land for a fa oversatt innhold der det er tilgjengelig, og se lokale arrangementer og tilbud. Basert pa posisjonen din, anbefaler vi at du velger:.

Du kan ogsa velge et sted fra folgende liste:

Amerika Latina (Espanol) Canada (English) United States (English)

Belgia (English) Denmark (English) Deutschland (Deutsch) Espana (Espanol) Finland (English) France (Francais) Ireland (English) Italia (Italiano) Luxembourg

Nederland (engelsk) Sverige (English) Osterreich (Deutsch) Portugal (English) Sweden (English) Switzerland Deutsch English Francais United Kingdom (English)

Asia Pacific.

Australia (English) India (English) New Zealand (English) ( ) ( ) ( )

Utforsk produkter.

Prov eller kjop.

L r a bruke.

Fa stotte.

Om MathWorks.

Haster tempoet i ingeniorfag og vitenskap.

MathWorks er den ledende utvikleren av matematisk databehandling programvare for ingeniorer og forskere.


Vil du spille i det mest populære kasinoet? Vi forbereder det for deg. Registrer deg nå!