What’s the probability of hitting the hardest-to-hit Craps bet?
Figuring out the actual probability of an event can be difficult. Sure, the examples from your Intro to Stats course book are solvable, but eventually you run across some event where calculating the theoretical probability is out of reach.
That’s where empirical probability comes in. These are experiments; observations of a real-life process that can be performed to test or arrive at the actual, theoretical probability.
Casino games get a statistician’s mind moving and craps probably more so than all the other games on the floor. Look down at the green felt and it’s covered in enticing bet names and their payouts. One of the many is something called the “Fire Bet”. Most gamblers already know it’s a waste of money, but they still drop a buck on it anyway. Why? It could be the free drinks, but even when sober that 999 to 1 chip return is the most tantalizing payout on the board. In craps a shooter needs to hit a 7 or 11 to win. 2, 3 or 12 will lose. If the shooter rolls any of the remaining numbers, that number becomes the point. Now they must roll that point before they roll a 7. None of the other numbers matter; keep rolling until you hit the point and win or hit a 7 and “seven out” lose. For the “Fire Bet”, the shooter must roll and hit every point before ever experiencing a seven out. That’s quite the hot streak. That means roll a 4, hit a 4 before you hit a seven. Roll a 5, hit a 5 before you hit a seven. Same goes with the 6, 8, 9 and 10.
I found someone out there on the internet who has worked out this likelihood. I’m not quite sure how he arrived at these numbers — I don’t know if he worked out the actual theoretical probability or if he too used a process that I’m about to describe. Either way, I thought I’d see what I can learn through my own experimentation. Just how hard is it to hit the fire bet?
My first step is to simulate a game of craps with a program. Python is an excellent language to perform stochastic simulations. So let’s create a gambler who can roll the dice and build some way to track his or her progress.
The outcome of RollDie is simply the sum of two random numbers from 1 to 6. Gambler has a method ShootCraps which simulates one entire game of craps. Keep rolling the dice until you seven out. Keep in mind that rolling a 7 does not necessarily end the game — a “seven out” ends the game and that only happens when you roll a 7 when you’re trying to hit a point (or your mark). Along the way, keep track of the points the gambler has hit and if he or she happens to hit our goal then set a flag called fireBetWinner to true. If that occurs, this game of craps saw a fire bet event happen.
Meet Bob. I’ve given him all the money in the world. Bob keeps running ShootCraps until he finally plays a game where he is a fireBetWinner. Every time Bob shoots a game of craps, we append the outcome to his list of games. We don’t stop until he hits the fire bet (the while loop) so the length of that games list will tell us the number of games it took Bob to hit the fire bet e.g. 1 fire bet out of 200 tries, 1 fire bet out of 1000 tries, etc… But running Bob out there for just one simulation won’t give you the right answer.
The point of a stochastic simulation is to run this program over and over again. Throw more and more simulation runs at it and eventually your empirical probability results will converge onto the theoretical one (see “Law of Large Numbers”) so store the number of games it took into a list called simulationResults and then create a new Bob, bring him back into the casino again to start another sequence of games (the for loop). This means that numSimulations is the number of times the fire bet event occurred and sumGames — a sum of every simulations’ games played to hit the fire bet — is the total number of tries.
Note: All my code can be found here. There’s an alternate version of the program that keeps track of the payouts during the shooter’s time standing at the table waiting for that fire bet to hit. It plots the money in the shooter’s wallet on a line graph. Assuming a $10 minimum pass line bet and a $1 fire bet every game, most shooters would lose their car and their house trying to hit a fire bet.
So at this point we should visualize the results to help make sense of it. In this particular experiment I’m using 10000 simulations. I plot the data using a histogram. As you move along the x axis, you see the number of games it took to hit the fire bet increases and the y axis shows the number of simulations.
Because the distribution is skewed to the right, instead of taking the mean, it makes more sense to use the median to describe the typical value. In this particular experiment, the median was 4,218. So in a typical simulation it took about 4,218 games to hit the bet. But we ultimately want to get to the empirical probability, a different concept that’s calculated differently.
P(e) = # of times event occurs / total # of trials
You’ve already seen that I’m calculating this in my program using the number of simulations on top (every individual simulation runs until there’s a fire bet event occurrence) and the sum of all the games on the bottom. Along with the percentage, I would like to look at it as a ratio. And because the fire bet pays out separately when the shooter successfully hits 4 points and 5 points as well as that giant 6 point 999 to 1 payout winner, I’ve also modified and executed the program to look at those odds as well.
4x fire bet winner: 1.06% or 1 in 94.7 games
5x fire bet winner: 0.18% or 1 in 559.3 games
6x fire bet winner: 0.0164% or 1 in 6,080 games
Not even during my longest, whiskey fueled nights in Atlantic City could I stand there and play that many games.
Around the 500th game my arm would detach and fly down the table with the dice. Instead of witnessing that, with a hundred lines of code and a click of a button, we can simulate hundreds of thousands of dice rolls. The point is, computer programming is a great tool for determining the empirical probability and it turn, the theoretical probability. I mentioned earlier that I found some fire bet probabilities online that sort of inspired me to attempt this exercise. The article comes from someone who goes by Jerry “Stickman” and I’m not sure how or if he derived these numbers, but for comparison sake, here are those numbers…
4x fire bet winner: 0.88% or 1 in 113 games
5x fire bet winner: 0.16% or 1 in 610 games
6x fire bet winner: 0.0162% or 1 in 6,156 games
Very close but not an exact match. My computer program-generated findings show each fire bet occurs a little more often. Hard to say if someone’s math is off or just a gap that more simulations can fill, but any comments would be more than appreciated.