Vincent La Zachary Hamaker Can we beat the House? Whether it is in the “Bellagio” in Las Vegas, the “Clermont Club” in London, or the “Borgata” in Atlantic City, gamblers everywhere ask themselves “Can we beat the House?” Except for the most experienced of gamblers playing a select few games, the answer to said question is, “No.” However, for most of us evenkeeled amateurs, the point of going gambling is not necessarily to win money, but simply for the fun experience. Of course, losing a large amount of money certainly is not a positive experience either. So instead, gamblers may not ask themselves “How to beat the House?” but rather, “Which game can I play to lose the least amount of money?” Casinos, like any other business, need to make profits in order to stay in operation. Logically, it is not hard to understand why most, if not all, casino games favor the House. However, a typical casino will host many different games, and each game has different expected winnings. Of course, gambling is very much tied into probability and one can use probability to calculate the Expected Value of the winnings for various games. This project will use MatLab to simulate various casino games, namely Roulette and Craps, in order to calculate the Expected winnings for each game. This project will then take the results of the MatLab programs and analyze not only the expected winnings of the game overall, but also if the expected winnings of the game might change depending on various player actions. Roulette is an extremely popular Casino game played throughout the world. For this project, we will assume American Rules. In the game, a croupier spins a wheel in one direction, and then spins a ball in the opposite direction. The wheel contains thirty-eight slots, numbered one to thirty six, and then one slot being zero and another being double zero, “00”. Theoretically the ball landing on any slot is completely random and equally likely as landing on another slot. The game play is relatively simple, essentially the same as picking a random number from zero to 36 or “double zero”. However, there are 17 different ways of betting and playing the game, categorized as “Inside Bets” and “Outside Bets”. Outside Bets typically have better odds of winning but payout less, while Inside Bets typically have worse odds of winning but payout more. The Inside Bets a La 2 player can make are called: “Straight-Up, Split, Street, Corner, Six Line, Trio, Basket, Row 00, and Top line”. The Outside Bets a player can make are called: “1 to 18, 19 to 36, Red or Black, Even or Odd, Dozen Bets, Column Bets, and Snake Bet”. A gambler, upon deciding to play Roulette may ask “What are my odds of winning if I play Roulette?” However, with all of these betting schemes, it may be more natural to ask “What should I bet to maximize my winnings?” This project will use a MatLab program to simulate games of Roulette, and calculate the expected winnings depending on the bet the player makes. In this project we will simulate games of Roulette, with each game using a different type of bet. Most of the bets are self-explanatory and the ones that are not are easy to understand with some basic knowledge of the game. A player who makes a “1 to 18” bet wins if the ball lands on any number between one and eighteen. If the ball lands anywhere else, the player loses his initial bet. The payout for this bet is 1:1. Other bets that may not be so simple to understand are Column Bets, Straight-Up, Top Line, and Row00. When a player makes a “Column Bet” that player must then declare either: 1st Column, 2nd Column, or 3rd Column. If one were to look at a Roulette betting layout (Appendix A), one can see that the numbers are divided into three columns. If the player bets “1st Column”, that player will win if the ball lands on any number in the first column, i.e. 1, 4, 7, 10, 13…etc. The bets of “2nd Column” and “3rd Column” work similarly. The payout for “Column Bet” is 2:1. The “Straight-Up” bet is simply a player bets only on one specific number and can only win if the ball lands on that specific number. The payout for this bet is 35:1. A player making a “Top Line” bet wins if the ball lands on any space on the top line – 0, 00, 1, 2, or 3. The payout for this bet is 6:1. A table detailing the different types of bets, winning spaces, and payouts can be found in Appendix B. In order to calculate the expected winnings, the MatLab program simulates one hundred players making five thousand consecutive bets and then averages the winnings from each of the five thousand outcomes. The program will then output the expected winnings for a player playing one game executing a specific bet. The results are as follows: Types of Bet Even Odd Simulated Expected Winnings of One Game Using MatLab Program ($1 Bet each game) -0.0504 -0.0508 La 3 Red Black 1 to 18 19 to 36 1st Dozen 2nd Dozen 3rd Dozen 1st Column 2nd Column 3rd Column Row 00 Top Line Straight-Up -0.0501 -0.0502 -0.0499 -0.0478 -0.0510 -0.0542 -0.0537 -0.0565 -0.0527 -0.0508 -0.0533 -0.0760 -0.0540 (See Appendix C for an example Display Result and Appendix D for the MatLab Code used) After these simulations, we reach a conclusion which may not have been so obvious beforehand. For the most part, it does not matter what type of bet the player makes. No matter what, the player’s expected winnings for each game (on one dollar bets) is about -0.05. In fact, upon further research, the actual expected winnings is about -0.053. However, something extremely interesting is that only for the bet of “Top Line” is the expected not about -0.053. In fact, in our simulation, our expected winnings was significantly lower at a value of -0.076. Upon further research, the expected winnings for a bet of “Top Line” is about -0.079. In fact, a bet of “Top Line” is the only bet in Roulette that does not have an expected winnings of about -0.053! Therefore, we can conclude that a player playing Roulette should never make a bet of “Top Line”! Another fast-paced casino game is Craps. Craps is generally considered one of the best games in Casino, not only because of the exciting nature of the game, but also because of the extremely generous house odds of the game. Depending on certain rules, players can use certain betting strategies to lower edge as low as 0.02 percent! Because of this, Craps is generally considered the game with the best odds against the house. This project will use a MatLab program to simulate Craps games and calculate the expected winnings of each game. Using these calculations, this project will demonstrate what the best betting strategy is. The game is played by throwing two dice. The first part of the game is relatively simple. Each player must first make an initial bet, called the Pass Line bet. The Pass Line bet pays one-to-one, which means that if a player wins, that player wins an amount equal to the Pass Line bet plus the original Pass Line bet. If a player La 4 loses, that player loses his original Pass Line bet. On the first roll, if the “shooter”, or the person rolling the dice, rolls a seven or an eleven, the bettor wins. If the first roll is a two, three, or a twelve, the bettor loses. However, if the roll is anything else: a four, five, six, eight, nine, or ten, then the game keeps going! In this situation, a Point is established. If the first roll is not a two, three, seven, eleven, or twelve, then that roll becomes the Point. So, for example, if the first roll is a seven, the bettor wins. If the first roll is a 12 the bettor loses. If the first roll is a five, then the Point is five and the game keeps going. After this point, in order to win, the player must keep rolling until he rolls the Point. After the Point is established, the player will lose if a seven is rolled. So for example, if the first roll is a five, the player rolls again. If the next roll is a seven, the player loses the Pass Line bet. In another example, if the first roll is a six, the player rolls again. If the next roll is a two, nothing happens, because “two” is neither the Point nor a seven. If the next roll is a three, nothing happens again. If the next roll is a six, then the player has rolled the Point again and therefore wins the Pass Line bet. The first step in this project in considering Craps, is the MatLab program first simulates a craps game only with Pass Line betting. With only Pass Line betting, the program simulates that with one-dollar bets, the player has expected winnings of about -0.0152, so the House advantage in this game if the player only makes Pass Line bets is about 1.52%. However, there is another part of the betting scheme in Craps which is called the Odds bet. The addition of the Odds bet is what makes this game not only more fun, but also more inductive to strategy. The Odds bet is made only after the Point is established, i.e. only when the first roll is not a seven, eleven, two, three, or twelve. After the Point is established, a player can choose to make an Odds bet. If a player wins (i.e. rolling the Point before rolling the seven) the player wins both the Odds bet and the Pass Line bet. However, if the player loses (i.e. rolling a seven before rolling the Point), the player loses both the Odds bet and the Pass Line bet. However, the Odds bet does not pay out one-to-one. In fact, it pays what is called true odds. A true odds bet simply means that the Odds bet pays out according to how hard it is to roll the Point before a seven. For example, if the Point is a four or a ten, a player only has 3/36 chance of rolling the Point, while a 6/36 chance of rolling a seven, so therefore the Odds bet would pay 2:1 for a Point of a four or a ten. Similarly, the Odds bet pays out 1.5:1 for a Point of a five or a nine, and 1.2:1 for a Point of a six or eight. La 5 Because of the higher payouts for Odds bet, the Odds bet actually contains absolutely zero house advantage. So therefore, if a bettor maximizes the Odds bet, the house advantage would be significantly reduced! Because of this, Casinos will limit the amount you can make on an Odds bet by multiples of the Pass Line bet. For example if the Casino only allows 1x Odds bet, a player’s maximum Odds bet is equal to the player’s Pass Line bet. If the Casino allows 2x Odds bet, a player’s maximum Odds bet is equal to two times a player’s Pass Line bet. The logic is the same for 3x, 4x… etc. This project then uses a MatLab program to simulate a Craps game with Odds betting, and compares this result to the previous result of only Pass Line betting. Results of MatLab program with Odds betting: With a Pass Line bet of 0.5 and an Odds bet of 0.5 (total $1), the program simulates winnings of -0.0077 which translates to a 0.77% house advantage. We already see that the house advantage is decreasing for 1x Odds bet! Now let’s assume the Casino allows 2x Odds betting. Assume a player bets a Pass Line of 1/3. The maximum Odds bet is 2/3. If a player bets this (total bet of $1) our MatLab program simulates loss of 0.0038 which corresponds to only a 0.38% house advantage! So, let’s now see what happens if the Casino allows for 100x Odds betting. Our MatLab program simulates a loss of only 0.0002 which corresponds to only a 0.02% house advantage! Therefore, we see with proper betting strategy, a player can drastically reduce the house advantage when playing Craps. Essentially, a player’s winning strategy is to minimize the Pass Line bet and maximize the Odds bet. While Roulette and Craps are relatively simple games to play, this project shows that there is some significant and non-trivial strategy behind each game. Players not caring to look at the mathematics behind each game may not be aware of the little tricks which are innate in the character of the game. This project showed something extremely interesting for Roulette: that even though there are many different betting schemes, each betting scheme produces the same expected winnings, except for one. And so we can conclude from this project that betting “Top Line” in Roulette is not a smart choice. For Craps, this project showed that it is advantageous to maximize the Odds bet, since this drastically reduces the House Advantage! La 6 Works Cited "Craps Lessons: Learn How to Play Craps, and Practice." Top Ten Las Vegas Tips, plus Our How-toGamble Guide. Web. 27 Nov. 2011. <http://vegasclick.com/games/craps.html>. Gould, Ronald. Mathematics in Games, Sports, and Gambling: the Games People Play. Boca Raton: CRC, 2010. Print. "♠Roulette -- Strategy and Odds by The Wizard of Odds." Wizard of Odds: The Last Word on Gambling Strategy. Web. 27 Nov. 2011. <http://wizardofodds.com/roulette>. La 7 Appendix A (Roulette Board) La 8 Appendix B (Roulette Table of Payouts) Bet name Winning spaces Payout 0 0 35 to 1 00 00 35 to 1 Straight up Any single number 35 to 1 Row 00 0, 00 17 to 1 Split any two adjoining numbers vertical or horizontal 17 to 1 Basket 0, 1, 2 or 00, 2, 3 or 0, 00, 2 11 to 1 Street any three numbers horizontal (1, 2, 3 or 4, 5, 6, etc.) 11 to 1 Corner any four adjoining numbers in a block (1, 2, 4, 5 or 17, 18, 20, 21, etc.) 8 to 1 Top line 0, 00, 1, 2, 3 6 to 1 Six line any six numbers from two horizontal rows (1, 2, 3, 4, 5, 6 or 28, 29, 30, 31, 32, 33 etc.) 5 to 1 1st column 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34 2 to 1 2nd column 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35 2 to 1 3rd column 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36 2 to 1 1st dozen 1 through 12 2 to 1 2nd dozen 13 through 24 2 to 1 3rd dozen 25 through 36 2 to 1 Odd 1, 3, 5, ..., 35 1 to 1 Even 2, 4, 6, ..., 36 1 to 1 Red 1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36 1 to 1 Black 2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35 1 to 1 1 to 18 1, 2, 3, ..., 18 1 to 1 19 to 36 19, 20, 21, ..., 36 1 to 1 La 9 Appendix C (Roulette Display Results) >> Roulette(1,1000,1000) Here is the game of Roulette. What type of bet do you want to make? You have the following options: 1. Even 2. Odd 3. Red 4. Black 5. 1to18 6. 19to36 7. 1stDozen 8. 2ndDozen 9. 3rdDozen 10. 1stColumn 11. 2nd Column 12. 3rd Column 13. Row00 14. Top Line 15. Straight-Up Remember when typing the bet, must be EXACTLY the same spacing and CAPS. ALSO because it is a string you must make sure to type ' around the word. What type of bet would you like to make? 'Even' ans = -0.0501 >> Roulette(1,1000,1000) Here is the game of Roulette. What type of bet do you want to make? You have the following options: 1. Even 2. Odd 3. Red 4. Black 5. 1to18 6. 19to36 7. 1stDozen 8. 2ndDozen 9. 3rdDozen 10. 1stColumn 11. 2nd Column 12. 3rd Column 13. Row00 14. Top Line 15. Straight-Up Remember when typing the bet, must be EXACTLY the same spacing and CAPS. ALSO because it is a string you must make sure to type ' around the word. What type of bet would you like to make? 'Top Line' ans = -0.0815 La 10 Appendix D (Roulette MatLab Code) %Programming conventions for roulette: %Red = the odd numbers between 1 and 36. %Black = the even numbers between 1 and 36. %0 = 37 %00 = 38. function avg_winnings = Roulette(bet, num_bets, num_simulations) i=1; k=1; Win = zeros(1,num_simulations); FirstTime=0; display('Here is the game of Roulette. What type of bet do you want to make?') display('You have the following options:') display('1. Even') display('2. Odd') display('3. Red') display('4. Black') display('5. 1to18') display('6. 19to36') display('7. 1stDozen') display('8. 2ndDozen') display('9. 3rdDozen') display('10. 1stColumn') display('11. 2nd Column') display('12. 3rd Column') display('13. Row00') display('14. Top Line') display('15. Straight-Up') display('Remember when typing the bet, must be EXACTLY the same spacing and CAPS.') display('ALSO because it is a string you must make sure to type '' around the word.') WhatBet=input('What type of bet would you like to make?'); while(k<=num_simulations) i=1; winnings=0; while(i<=num_bets) roll=randi(38); if (strcmp(WhatBet,'Even')) if(rem(roll,2)==0 && roll~=38) winnings=winnings+bet; else winnings=winnings-bet; end end if (strcmp(WhatBet,'Odd')) if(rem(roll,2)==1 && roll~=37) winnings=winnings+bet; else winnings=winnings-bet; end end if (strcmp(WhatBet,'Red')) if(strcmp(RouletteColor(roll),'Red')) winnings=winnings+bet; else winnings=winnings-bet; end La 11 end if (strcmp(WhatBet,'Black')) if(strcmp(RouletteColor(roll),'Black')) winnings=winnings+bet; else winnings=winnings-bet; end end if (strcmp(WhatBet,'1to18')) if(roll>=1 && roll<=18) winnings=winnings+bet; else winnings=winnings-bet; end end if (strcmp(WhatBet,'19to36')) if(roll>=19 && roll<=36) winnings=winnings+bet; else winnings=winnings-bet; end end if (strcmp(WhatBet,'1stDozen')) if (roll>=1 && roll <= 12) winnings=winnings+(2*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'2ndDozen')) if (roll>=13 && roll <= 24) winnings=winnings+(2*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'3rdDozen')) if (roll>=25 && roll <= 36) winnings=winnings+(2*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'1stColumn')) if (rem(roll,3)==1 && roll~=37) winnings=winnings+(2*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'2ndColumn')) if (rem(roll,3)==2 && roll~=38) winnings=winnings+(2*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'3rdColumn')) if (rem(roll,3)==0) winnings=winnings+(2*bet); else La 12 winnings=winnings-bet; end end if (strcmp(WhatBet,'Row00')) if(roll==37 || roll==38) winnings=winnings+(17*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'Top Line')) if(roll==37 || roll==38 || roll == 1 || roll == 2 || roll==3) winnings=winnings+(6*bet); else winnings=winnings-bet; end end if (strcmp(WhatBet,'Straight-Up')) if(FirstTime==0) number=input('What Number do you want to bet on?'); FirstTime=1; end if(roll==number) winnings=winnings+(35*bet); else winnings=winnings-bet; end end i=i+1; end Win(k)=winnings; k=k+1; end avg_winnings = (sum(Win))/(num_simulations*num_bets); end function Color = RouletteColor(bet) if((bet>=1 && bet<= 10) || (bet>=19 && bet<=28)) if (rem(bet,2)==1) Color='Red'; end if (rem(bet,2)==0) Color='Black'; end end if((bet>=11 && bet<=18) || (bet>=29 && bet<=36)) if (rem(bet,2)==1) Color='Black'; end if (rem(bet,2)==0) Color='Red'; end end if(bet==37 || bet==38) Color='Green'; end end La 13 Appendix E (Craps MatLab Code) function avg_winnings = CrapsPL(num_bets, num_simulations) k=1; Win = zeros(1,num_simulations); PL_Bet=1; %Pass Line Bet while(k<=num_simulations) i=1; winnings=0; Point=0; while(i<=num_bets) RollA=randi(6); RollB=randi(6); Roll=RollA+RollB; if (Roll==7 || Roll==11) winnings=winnings+PL_Bet; end if (Roll==2 || Roll==3 || Roll==12) winnings=winnings-PL_Bet; end if (Roll==4 ||Roll==5 ||Roll==6 ||Roll==8 ||Roll==9 ||Roll==10) Point=Roll; end while (Point~=0) RollA=randi(6); RollB=randi(6); Roll=RollA+RollB; if (Roll==Point) winnings=winnings+PL_Bet; Point=0; end if (Roll == 7) winnings=winnings-PL_Bet; Point=0; end end i=i+1; end Win(k)=winnings; k=k+1; end avg_winnings = (sum(Win))/(num_simulations*num_bets); end function avg_winnings = CrapsWO(num_bets, num_simulations) k=1; Win = zeros(1,num_simulations); PL_Bet=1/101; %Pass Line Bet Odds_Bet=100/101; while(k<=num_simulations) i=1; winnings=0; while(i<=num_bets) Point=0; RollA=randi(6); RollB=randi(6); La 14 Roll=RollA+RollB; if (Roll==7 || Roll==11) winnings=winnings+PL_Bet; end if (Roll==2 || Roll==3 || Roll==12) winnings=winnings-PL_Bet; end if (Roll==4 ||Roll==5 ||Roll==6 ||Roll==8 ||Roll==9 ||Roll==10) Point=Roll; end while (Point~=0) RollA=randi(6); RollB=randi(6); Roll=RollA+RollB; if (Roll==Point) if(Point==4 || Point == 10) winnings=winnings+PL_Bet+(2*Odds_Bet); Point=0; end if(Point==5 || Point == 9) winnings=winnings+PL_Bet+(1.5*Odds_Bet); Point=0; end if(Point==6 || Point == 8) winnings=winnings+PL_Bet+(1.2*Odds_Bet); Point=0; end end if (Roll == 7) winnings=winnings-PL_Bet-Odds_Bet; Point=0; end end i=i+1; end Win(k)=winnings; k=k+1; end avg_winnings = (sum(Win))/(num_simulations*num_bets); end