I've checked my results against the tables at the usually reliable
In most cases I calculate exactly the same values they do, except in a few cases. These cases being where the dealer has an ace or a ten showing. In such cases my program will always calculate a result slightly different to WOO's, and as far as I can tell, this is the only occasion it ever does so.
The difference is only slight. For example, given a 6 deck shoe, stand on soft 17, dealer shows a ten, player has A8 the odds are:
WOO Mine
stand +0.063321 0.064313
hit -0.087616 0.086395
double -0.233592 0.226191
My program uses a recursive algorithm. At each loop, the program considers in turn every card that might be drawn next, the chance of drawing that card, and the EV for that card:
total EV =
chance of ace * EV for ace +
chance of two * EV for two +
chance of three * EV for three +
...
The calculation of the EV for each card appears to work correctly.
After long consideration of the matter, I think the error must lie in the calculation of the chance of drawing a particular card. This will be slightly different depending if the dealer has an ace or ten showing. And this is the only difference between the ones I'm getting right, and those I'm getting wrong.
Note that I'm assuming the dealer has checked for Blackjack, and hasn't got it. Thus if the dealer shows a ten, the hole card cannot be an ace, and vice-versa. So, for example, assuming a single deck, player has stood on 4,8,6, dealer shows a ten, I figure that there are 44 possible cards the dealer might have for the hole card.
Chance of an ace = 0
chance of a 2 = 4 in 44
chance of a 3 = 4 in 44
chance of a 4 = 3 in 44
chance of a 5 = 4 in 44
chance of a 6 = 3 in 44
chance of a 7 = 4 in 44
chance of a 8 = 3 in 44
chance of a 9 = 4 in 44
chance of a 10 = 15 in 44
The above is the logic I'm using at the moment, but it appears to give incorrect results.
Here's the section of the program In the following code, cards_in_deck is a structure that holds information about the cards not in play and still in the shoe, available to be dealt.
cards_in_deck.cards_remaining is an integer showing the total number of cards left
cards_in_deck.Ace is an integer showing the number of Aces left
If dealer_hand = "A" And dealer_checks_for_blackjack Then
'----------------------------------------------
' This code operates only if dealer has a single
' ACE showing, and checks for Blackjack. We know
' the hole card cannot be a TEN, so the chance of
' any other card increases.
'----------------------------------------------
search_type = "ace_showing"
number_of_cards = cards_in_deck.cards_remaining - cards_in_deck.ten
chance_of_ace = cards_in_deck.Ace / number_of_cards
chance_of_ten = 0
ElseIf dealer_hand = "X" And dealer_checks_for_blackjack Then
'----------------------------------------------
' This code operates only if dealer has a single
' TEN showing, and checks for Blackjack. We know
' the hole card cannot be an ACE, so the chance of
' any other card increases.
'----------------------------------------------
search_type = "ten showing"
number_of_cards = cards_in_deck.cards_remaining - cards_in_deck.Ace
chance_of_ace = 0
chance_of_ten = cards_in_deck.ten / number_of_cards
Else
'----------------------------------------------
' This code operates in all other situations.
' 1) the dealer has a 2-9 showing or
' 2) dealer does not check for Blackjack
' 3) dealer has already drawn one or more cards.
'----------------------------------------------
search_type = "normal"
number_of_cards = cards_in_deck.cards_remaining
chance_of_ace = cards_in_deck.Ace / number_of_cards
chance_of_ten = cards_in_deck.ten / number_of_cards
End If
chance_of_two = cards_in_deck.two / number_of_cards
chance_of_three = cards_in_deck.three / number_of_cards
chance_of_four = cards_in_deck.four / number_of_cards
chance_of_five = cards_in_deck.five / number_of_cards
chance_of_six = cards_in_deck.six / number_of_cards
chance_of_seven = cards_in_deck.seven / number_of_cards
chance_of_eight = cards_in_deck.eight / number_of_cards
chance_of_nine = cards_in_deck.nine / number_of_cards
...
[/spoiler]
So, what am I missing?
The appendix 9 figures have been checked against other EV calculations and they were the same.
For instance this table calculates the probabilities of a hand occurring that appear in Appendix 9 (single deck only). You have to take into account what the hole card is not.
Player | Deal | Probability | Prob total | Total | 2-9 | Single | Order | Player 1 | Player 2 | Dealer | Hole | not Hole | Hole card |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x,y | z | 0.096531% | 21.622926% | 1,404,928 | 224 | 6,272 | 2 | 4 | 4 | 4 | 49 | 0 | any |
x,10 | y | 0.386124% | 21.622926% | 1,404,928 | 56 | 25,088 | 2 | 16 | 4 | 4 | 49 | 0 | any |
x,10 | 10 | 1.329763% | 10.638101% | 691,200 | 8 | 86,400 | 2 | 16 | 4 | 15 | 45 | 4 | not an Ace |
x,y | 10 | 0.354603% | 9.928895% | 645,120 | 28 | 23,040 | 2 | 4 | 4 | 16 | 45 | 4 | not an Ace |
10,10 | x | 0.723982% | 5.791855% | 376,320 | 8 | 47,040 | 1 | 16 | 15 | 4 | 49 | 0 | any |
x,y | x | 0.072398% | 4.054299% | 263,424 | 56 | 4,704 | 2 | 4 | 4 | 3 | 49 | 0 | any |
A,10 | x | 0.386124% | 3.088989% | 200,704 | 8 | 25,088 | 2 | 16 | 4 | 4 | 49 | 0 | any |
x,A | 10 | 0.362483% | 2.899868% | 188,416 | 8 | 23,552 | 2 | 4 | 4 | 16 | 46 | 3 | not an Ace |
10,10 | 10 | 2.327085% | 2.327085% | 151,200 | 1 | 151,200 | 1 | 16 | 15 | 14 | 45 | 4 | not an Ace |
x,x | y | 0.036199% | 2.316742% | 150,528 | 64 | 2,352 | 1 | 4 | 3 | 4 | 49 | 0 | any |
x,10 | x | 0.289593% | 2.316742% | 150,528 | 8 | 18,816 | 2 | 16 | 4 | 3 | 49 | 0 | any |
x,10 | A | 0.267923% | 2.143380% | 139,264 | 8 | 17,408 | 2 | 16 | 4 | 4 | 34 | 15 | not a 10 |
x,y | A | 0.065011% | 1.820297% | 118,272 | 28 | 4,224 | 2 | 4 | 4 | 4 | 33 | 16 | not a 10 |
A,10 | 10 | 1.359313% | 1.359313% | 88,320 | 1 | 88,320 | 2 | 16 | 4 | 15 | 46 | 3 | not an Ace |
x,x | 10 | 0.132976% | 1.063810% | 69,120 | 8 | 8,640 | 1 | 4 | 3 | 16 | 45 | 4 | not an Ace |
x,A | x | 0.072398% | 0.579186% | 37,632 | 8 | 4,704 | 2 | 4 | 4 | 3 | 49 | 0 | any |
10,10 | A | 0.517130% | 0.517130% | 33,600 | 1 | 33,600 | 1 | 16 | 15 | 4 | 35 | 14 | not a 10 |
x,A | A | 0.048758% | 0.390064% | 25,344 | 8 | 3,168 | 2 | 4 | 4 | 3 | 33 | 16 | not a 10 |
A,10 | A | 0.200942% | 0.200942% | 13,056 | 1 | 13,056 | 2 | 16 | 4 | 3 | 34 | 15 | not a 10 |
x,x | A | 0.024379% | 0.195032% | 12,672 | 8 | 1,584 | 1 | 4 | 3 | 4 | 33 | 16 | not a 10 |
x,x | x | 0.018100% | 0.144796% | 9,408 | 8 | 1,176 | 1 | 4 | 3 | 2 | 49 | 0 | any |
A,A | 10 | 0.138886% | 0.138886% | 9,024 | 1 | 9,024 | 1 | 4 | 3 | 16 | 47 | 2 | not an Ace |
A,A | A | 0.012189% | 0.012189% | 792 | 1 | 792 | 1 | 4 | 3 | 2 | 33 | 16 | not a 10 |
==== | BJ | 4.826546% | 4.826546% | 313,600 | 1 | 313,600 | 2 | 50 | 49 | 16 | 4 | 45 | Ace |
100.000000% | 6,497,400 | 551 |
The dealer show card, and player cards are input to cover all situations.
The dealer hold card is 49-(not hole card)
Order is 1 or 2 depending on if the order of the player cards matters or not.
Single is the number of possibilities for a single value of x, y, and z.
--- It is the product of order and player and dealer card
Column labeled "2-9" is combinations
Total = (value of 2-9) * ( Single (
Probability = Single / 6,497,400 (all combinations possible)
Prob total = (Probability)* (column labeled 2-9)
PLAYER - x,y DEAL - z
PLAYER - x, 10 DEAL - y
what are x, y and z? What does the DEAL column signify? There's a lot of stuff like that where I don't know what it meams.
Using conditional probability, the answer should be [(33/49)*((4/33)*(3/48) + (29/33)*(4/48))]/(33/49) = 8.08%.
Note that is a little less than the probability of the dealer didn't peek of 4/49 = 8.16%, because there is a greater chance the dealer's hole card is a 9. Hopefully I did my math right at 4 AM.
Quote: PeterMorrisCan you explain what the table means? for instance :
PLAYER - x,y DEAL - z
PLAYER - x, 10 DEAL - y
what are x, y and z? What does the DEAL column signify? There's a lot of stuff like that where I don't know what it meams.
DEAL means DEALER
x,y,z means three different cards (values 2-9).
x,x,y means two cards that are the same, and one that is different (values 2-9).
If you count the permutations of 4 cards out of 52 you get 6,497,400. In Excel the function is =PERMUT(52,4) . The table calculates the probabilities of each combination. These values are used in the Wizard's Appendix 9.
If you look at the Appendix 9 table it says
2 7,2 has a probability of 0.00072398
If you look in my table for x,y x it says 0.072398% but you can calculate this number using the formulas.
===================
Expressing the calculation that the WIZ did as a fraction it is 8/99=.808080% which is slightly smaller than 4/49=8/98 .
Quote: WIZARDUsing conditional probability, the answer should be [(33/49)*((4/33)*(3/48) + (29/33)*(4/48))]/(33/49) = 8.08%.
Note that is a little less than the probability of the dealer didn't peek of 4/49 = 8.16%, because there is a greater chance the dealer's hole card is a 9. Hopefully I did my math right at 4 AM.
This sounds promising. But I don't understand the formula you are using. Can you explain where those specific numbers come from, and give me a general forula to cal;culate the odds in any given situation.
Also, are there any tables showing the EV if dealer doesn't check for BJ? I'd like to check my figures for those.
Would I be correct in thinking they will be exactly the same if dealer shows 2 to 9?
For instance (33/49) refers to all the cards in the deck except the three you know that are not a ten.
Quote: PeterMorris
This sounds promising. But I don't understand the formula you are using. Can you explain where those specific numbers come from, and give me a general forula to cal;culate the odds in any given situation.
Also, are there any tables showing the EV if dealer doesn't check for BJ? I'd like to check my figures for those. Would I be correct in thinking they will be exactly the same if dealer shows 2 to 9?
I could have just said (4/33)*(3/48) + (29/33)*(4/48). That is pr(dealer has 9 in the hole)*pr(player has 9, given that dealer has a 9 in the hole) + pr(dealer doesn't have 9 in the hole)*pr(player has 9, given that dealer does not have a 9 in the hole). Any questions?
Sorry, I've never seen such tables for European rules. If the dealer has a 2-9 up, the results would be the same.
Quote: Wizard
I could have just said (4/33)*(3/48) + (29/33)*(4/48). That is pr(dealer has 9 in the hole)*pr(player has 9, given that dealer has a 9 in the hole) + pr(dealer doesn't have 9 in the hole)*pr(player has 9, given that dealer does not have a 9 in the hole).
That's a lot clearer. I'll alter my program accordingly.
Quote:Any questions?
A couple:
Q1 - should I use this formula for all hands, or only if the dealer shows ace or 10?
Q2 - is there any practical difference between the following rules variants?
a) Dealer gets a hole card, but doesn't peek/ check for BJ.
b) Dealer only gets one card, only gets a second card after all players stop hitting.
Except for splits. I'll ask about that in another post.
Quote: PeterMorrisThank you so much, Mr Wizard. I've adjusted my program according to your advice, and it's now getting exactly the same results as in your tables.
Except for splits. I'll ask about that in another post.
You're welcome. I assume you don't require an answer to your two questions two posts above then. Things get even uglier when it comes to splitting. I'll await your questions.
I think the answer to my first question is that when thje dealer shows 2-9 the terms in the formula cancel out, and it becomes much simpler. The chance of hitting a nine becomes (number of unseen nines) / (total number of unseen cards).
I think the answer to my second question is that there's no difference.
But I could be wrong, so I'd welcome your answer.
When computing EV, do you take into account push action, or just raw win/loss action? An extreme example would be:
You play 1 million hands of a specific combination you are researching. 500,000 hands are winners, 400,000 hands are losers, and 100,000 hands are pushes.
Is the EV (1 - 1100000/1000000) [10%] or (1 - 1000000/900000) [10.11%]?
Some of the popular published tables seem to ignore the pushes, and thus skew the EV values.