Home Gambling Info Odds Gambling Online Ask the Wizard Play for Fun Blog Radio Video | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Reason #5 why the Wizard likes Bovada: Intelligent Bonuses Many online casinos offer huge signup bonuses, but there’s a catch. Buried in the fine print is that play on the most popular games doesn’t count towards earning the bonus. It’s common for play on blackjack, baccarat, roulette, craps, and video poker to be excluded. In many cases, only slots count. And that’s if you can even find the terms and conditions. Many casinos put their 100% bonus in big flaming letters but make you hunt all over their site to find the rules. Bovada allows play on all games to count towards the wagering requirement. It’s that simple. Just no opposite betting. All casinos ought to be as easy as Bovada about this. The bonus offer itself is simple too: on your first deposit, they’ll give you an extra 10%. If you deposit $100, you’ll wind up with $110 in chips or tokens. Finally, in the unlikely event that Bovada feels you’ve been abusing their bonuses they won’t seize your winnings like most other casinos will. In the worst case scenario they will politely tell you that they will not be offering you any future bonuses, but you are welcome to keep playing and keep everything you have made already. |
My methodology for video poker analysisLast Update: Feb 23, 2010 One question I get asked from time to time is how I got my video poker program to evaluate a pay table in under one minute. This page will attempt to answer that question. My original program used a brute force method to loop through all 2,598,960 starting hands and then play all 32 possible ways to discard, including looping through all 1,533,939 replacements cards when discarding all five. This was about the year 1998. On my computer at the time, I determined it would take over a year to finish. Such a program today would only take about a month. However, with two shortcuts you can cut the time from about a month to about three seconds. Following is how to do it. To cut down the running time to a few days you can avoid analyzing similar hands on the deal. For example if the starting hand were four aces and a king it would not make any difference what suit the king was. It would save some time to assign an arbitrary suit to the king and multiply the results by four. Using this same logic the number of different kinds of starting hands can be cut from 2,598,960 to 134,459. The following tables show the ways to arrange the suits, and associated weighting, for every class of hands by rank. Five SingletonsLoop through all combin(13,5)=1,287 possible ways to pick 5 different ranks out of 13. For each combination of ranks, set the suits (numbered 1 to 4) and weightings as follows. For example, the first row sets each singleton rank with a suit of 1. There are four possible suits, so rather than do it four times, do it once and multiply the results by the weighting of 4.
PairLoop through all 13×combin(12,3)=2,860 possible ways to pick a rank for the pair, and three ranks out of the 12 remaining for the three singletons. For each combination of ranks, set the suits (numbered 1 to 4) and weightings as follows. For example, the first row sets the suits of the pair to 1 and 2, and the suits of the singletons all to 1. There are combin(4,2)=6 ways to choose the suits of the pair, and 2 ways to picks a suit for the singletons equal to one of the pair suits, for a weighting of 6×2=12.
Two PairLoop through all combin(13,2)×11=858 possible ways to pick two ranks out of 13 for the two pairs, and one rank out of the 11 left for the singleton. For each combination of ranks, set the suits (numbered 1 to 4) and weightings as follows. For example, the first row sets the suits of the first pair to 1 and 2, the suits of the second pair to 3 and 4, and the suit of the singleton to 1. There are combin(4,2)=6 ways to pick the suits for the first pair. The second pair has the other two suits, so there is only one 1 to choose those. The singleton can have either suit from the first pair, so there are two possibilities. Thus the weighting in the first row is 6×1×2=12.
Three of a KindLoop through all 13×combin(12,2)=858 possible ways to pick one rank out of 13 for the three of a kind and 66 ways to choose two singtons from the other 12 ranks. For each combination of ranks, set the suits (numbered 1 to 4) and weightings as follows. For example, the first row sets the suits of the three of a kind to 1, 2, and 3, and the suits of the two singletons equal to two of the three suits represented in the three of a kind. There are combin(4,3)=4 ways to choose 3 out of 4 suits for the three of a kind, 3 ways to pick a suit from those three for the first singleton, and 2 ways to pick a suit for the second singleton. Thus the weighting for the first row is 4×3×2=24.
Full HouseLoop through all 13×12=156 possible ways to choose one rank out of 13 for the three of a kind and 12 ways to choose a rank for the pair. For each combination of ranks, set the suits (numbered 1 to 4) and weightings as follows. For example, the first row sets the suits of the pair to 1 and 2, and the suits of the three of a kind equal to 1, 2, and 3. There are combin(4,2)=6 ways to pick the suits for the pair. The three of a kind uses both pair suits, and one of the other two. Thus the weighting for the first row is 6×2×2=12.
Four of a KindLoop through all 13×12=156 possible ways to choose one rank out of 13 for the four of a kind and 12 ways to choose a rank for the singleton. For each combination of ranks, set the suits (numbered 1 to 4) and weightings as follows. For example, the first row sets the suits of the four of a kind to 1, 2, 3 and 4, and the suits of the singleton equal to 1. There is only one way to pick 4 suits out of 4 for the three of a kind, and 4 ways to pick out suit out of 4 for the singleton. Thus the weighting for the first row is 1×4×2=4.
The above step will cut down the computation time by 95%, but it will still take several hours if you loop through the 1,533,939 possible combinations of replacement cards. The secret to a three-second program is to not loop at the draw step. Here is how to do it:
Following are four subroutines for translating 2 to 5 cards (numbered 0 to 51) and returning an index value:
int HandIndex2(int c1, int c2)
{
int r;
r=combin_array[52][2]-combin_array[52-c1][2];
r+=combin_array[51-c1][1]-combin_array[52-c2][1];
return r;
}
int HandIndex3(int c1, int c2, int c3)
{
int r;
r=combin_array[52][3]-combin_array[52-c1][3];
r+=combin_array[51-c1][2]-combin_array[52-c2][2];
r+=combin_array[51-c2][1]-combin_array[52-c3][1];
return r;
}
int HandIndex4(int c1, int c2, int c3, int c4)
{
int r;
r=combin_array[52][4]-combin_array[52-c1][4];
r+=combin_array[51-c1][3]-combin_array[52-c2][3];
r+=combin_array[51-c2][2]-combin_array[52-c3][2];
r+=combin_array[51-c3][1]-combin_array[52-c4][1];
return r;
}
int HandIndex5(int CardIndex[])
{
int r;
r=combin_array[52][5]-combin_array[52-CardIndex[0]][5];
r+=combin_array[51-CardIndex[0]][4]-combin_array[52-CardIndex[1]][4];
r+=combin_array[51-CardIndex[1]][3]-combin_array[52-CardIndex[2]][3];
r+=combin_array[51-CardIndex[2]][2]-combin_array[52-CardIndex[3]][2];
r+=combin_array[51-CardIndex[3]][1]-combin_array[52-CardIndex[4]][1];
return r;
}
LinksThis site VP Genius |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 1998-2012 Wizard of Odds Consulting, Inc. All rights reserved. • About | Privacy & Terms | Site Map | Links | Contact The Wizard’s other sites: Wizard of Vegas | Wizard of Macau | Math Problems • Recommended: Vegas Click | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||