Need help computing dealer bust probability

#1
as an exercise, I tried to compute the probability of a dealer bust showing an Ace. My method is recursive in nature, I try drawing all the cards for the dealer if his hand is < 17 and multiplying each card's chance of occurance (4/52, with 10's at 16/52) with the evaluated results of the new hands. Doing this approach I arrived at the conclusion for standing on a hard 17 I will:
fWin 0.11528628 float
fPush 0.13078891 float
fLose 0.75392485 float

The probabilities seem to add up to 100% so I must be doing something right, yet my numbers do not match with the quoted ace will bust 17% of the time.

My model assumes infinite decks so the probabiltiy does not change between draws, perhaps this is the problem?
 
Last edited:
#2
Using my methodology as described above I was able to compute a basic strategy:



It obviously differs from the 20+ other basic strategy tables I have seen on the net :laugh:. can someone help?
 

Attachments

callipygian

Well-Known Member
#3
wbav said:
as an exercise, I tried to compute the probability of a dealer bust showing an Ace. My method is recursive in nature, I try drawing all the cards for the dealer if his hand is < 17 and multiplying each card's chance of occurance (4/52, with 10's at 16/52) with the evaluated results of the new hands. Doing this approach I arrived at the conclusion for standing on a hard 17 I will:
fWin 0.11528628 float
fPush 0.13078891 float
fLose 0.75392485 float

The probabilities seem to add up to 100% so I must be doing something right, yet my numbers do not match with the quoted ace will bust 17% of the time.

My model assumes infinite decks so the probabiltiy does not change between draws, perhaps this is the problem?
You've got a few problems going on here, but let me address the one that seems most major.

For an infinite deck, dealer bust probabilities are completely independent of what the player has. That is, you shouldn't get any pushes or wins or losses because the percentage that the dealer busts is independent of what the player's hand.

I'm guessing that you're not recursing (is that a word?) properly. If B(x) is the probability of busting while holding x and P(n) is the probability of drawing n, then in general the formula you want to use is:

B(x) = sum(i = 1 to 11) {P(i)*B(x+i)}

However, keep in mind that when you have hard hands valued at 11 or greater, aces are always counted as 1, so P(1) = P(ace) and P(11) = 0. When you get down to hard hands of 10 or below, aces are never counted as 1, so P(1) = 0 and P(11) = P(ace).

So for hard(11) to hard(20):

Bhard(x) = sum(i = 1 to 10) {P(i)*B(x+i)}

For hard(2) to hard(10):

Bhard(x) = sum(i = 2 to 10) {P(i)*B(x+1)} + P(11)*Bsoft(x+11)

Soft hands can never bust, so you'll need a slightly different formula:

Bsoft(x) = sum(i = 1 to 21-x) {P(i)*Bsoft(x+i)} + sum(i = 22-x to 10) {P(i)*Bhard(x+i-10)}

Unless you're playing ENHC, you'll need to remove the probability of blackjack from Bsoft(11) and Bhard(10).
 
#4
I've combed through my calculation code and fixed several errors. here is my new table:



It looks somewhat better, but the surrenders are way out of whack, although not totally unreasonable based on my playing experience :). I made sure to treat aces correctly, for the dealer. Hard hands can get promoted to soft hands, soft hands can become hard. I treat an ace as 11 whenever possible otherwise 1, but never as both 11 and 1, I think that would be double-counting. My structure is very similar to the one you described. One thing mine does though, is that on >= 17, it no longer draws and it is treated as a leaf node which performs the following computation:

if(iC > 21) return fBustModifier;
if(iOp < 0) return iC < iS;
else if(iOp == 0) return iC == iS;
else return iC > iS;

fWin = Dealer(iOp = -1 iC=11 iS = 17 fBustModifier = 1)
fPush= Dealer(iOp = 0 iC=11 iS = 17 fBustModifier = 0)
fLoss= Dealer(iOp = 1 iC=11 iS = 17 fBustModifier = 0)
fWin + fPush + fLoss = 1

I interpret fWin as either the dealer scores < 17 (impossible) or busts. Therefore fWin should be the probability of busting but I am still getting fWin = 0.11528628.
 

Attachments

Last edited:
#6
Well I'm still working on the ace bust = 17%, I bet if I figure that out it'll fix a lot of the surrenders in my table.

If a dealer has an ace, there are about 16/52 on avg in a deck, 16/52 = 30.769%
 

callipygian

Well-Known Member
#7
wbav said:
It looks somewhat better, but the surrenders are way out of whack, although not totally unreasonable based on my playing experience :).
Do you usually play with early surrender? Because your surrender strategy looks like you're calculating early surrender.

wbav said:
if(iC > 21) return fBustModifier;
if(iOp < 0) return iC < iS;
else if(iOp == 0) return iC == iS;
else return iC > iS;
What's iOp and how is it calculated?

wbav said:
fWin = Dealer(iOp = -1 iC=11 iS = 17 fBustModifier = 1)
fPush= Dealer(iOp = 0 iC=11 iS = 17 fBustModifier = 0)
fLoss= Dealer(iOp = 1 iC=11 iS = 17 fBustModifier = 0)

...

I interpret fWin as either the dealer scores < 17 (impossible) or busts. Therefore fWin should be the probability of busting but I am still getting fWin = 0.11528628.
I would suggest making this less complicated than you're making it. Start by simply returning what the final dealer value is, rather than judging whether the player won or not. Tally the distribution of final dealer values and compare those to the standard tables - you should be able to tell whether you're actually busting less than you should be or there's something wrong in the analysis.
 
#8
Do you usually play with early surrender? Because your surrender strategy looks like you're calculating early surrender.
Yeah my surrender has an expected value of -1/2 and is always an option for the player, sounds a lot like early. I'll fix that up. Thanks for the tip.

What's iOp and how is it calculated?
iOp is just an operator so I can reuse the same function Dealer() to compute useful probabilities. In the example below, my recursive algorithm should evaluate all possible dealer hands, therefore I set it to:
-1 to indicate that the algorithm find all the hands that are < iS,
0 to find all the hands == iS
1 to find the hands greater > iS

I have deduced that if you have a 17 when standing, the probability of you winning should be the same as the probability of the dealer busting. Not sure what standard table you are referring to or what you mean by final dealer value.
 
#10
thats assuming a single deck though, I did not realize that. I am assuming right now drawing cards does not affect the probability:

lim n--> infinity
(16*n-1)/(52*n) = 16/52
 

Sonny

Well-Known Member
#12
callipygian said:
Start by simply returning what the final dealer value is, rather than judging whether the player won or not. Tally the distribution of final dealer values and compare those to the standard tables - you should be able to tell whether you're actually busting less than you should be or there's something wrong in the analysis.
I second that. Start at the very beginning of the process and make sure everything is working at that point, then move on to the next stage of the process. Here are some charts for dealer probabilities:

http://www.blackjackinfo.com/bjtourn-dealercharts.php

The charts assume that the dealer has already checked for a BJ. That will make a difference in the results.

-Sonny-
 
Top