(This article was first published on

The popular news are reporting [1,2,3,4,5] that the Multi-State Lottery Commission (MUSL) will change the rules for their lottery game Powerball, effective Jan. 15, 2012. I sent an email to the MUSL (at 8:00am Dec, 14th) asking for the new official rules, but haven't received a response yet (as of 10:30am Dec, 16th). Hence, these calculations are based on information from the popular news.The rule changes are summarized as follows:**BioStatMatt » R**, and kindly contributed to R-bloggers)- cost to play increased to $2 from 1$
- jackpot starts at $40M instead of $20M
- second prize starts at $1M instead of $0.2M
- number of red balls (powerballs) reduced to 34 from 39
- prize for matching the red ball alone increased to $4 from $3

*lose*$1.09 for every $2 ticket purchased. In the long run, this is equivalent to exchanging a $2 bill for a $1 bill every time Powerball is played.Note that these calculations are approximate because the jackpot is estimated using historical jackpots, and very generous because taxes are not deducted from winnings.The following

`R`code computes the expected winnings (loss) under the old and new rules. You download the script or source the file from within

`R`like so:

R> source("http://biostatmatt.com/R/powerball.R")

# jackpot amounts (as of 12/16/2011) # http://www.lottostrategies.com/script/jackpot_history/draw_date/101 # http://www.usamega.com/powerball-jackpot.asp jackpots <- read.csv('http://biostatmatt.com/csv/jackpot.csv') average_jackpot <- mean(jackpots$PrizeMillions) # for convenience ch <- choose # old rules # choose 5 from 59 white balls, 1 from 39 red balls # probabilities of winning powerball_old <- function(w, r) ch(5,w)*ch(54,5-w)/ch(59,5)*ch(1,r)*ch(38,1-r)/ch(39,1) # 9 ways to win p_old <- vector("numeric", length=9) p_old[1] <- powerball_old(5, 1) # five white + powerball_old p_old[2] <- powerball_old(5, 0) # five white p_old[3] <- powerball_old(4, 1) # four white + powerball_old p_old[4] <- powerball_old(4, 0) # four white p_old[5] <- powerball_old(3, 1) # three white + powerball_old p_old[6] <- powerball_old(3, 0) # three white p_old[7] <- powerball_old(2, 1) # two white + powerball_old p_old[8] <- powerball_old(1, 1) # one white + powerball_old p_old[9] <- powerball_old(0, 1) # powerball_old # winnings w_old <- vector("numeric", length=9) w_old[1] <- 1000000 * average_jackpot w_old[2] <- 200000 w_old[3] <- 10000 w_old[4] <- 100 w_old[5] <- 100 w_old[6] <- 7 w_old[7] <- 7 w_old[8] <- 4 w_old[9] <- 3 # expected winnings (loss) # cost to play is $1 expected_winnings_old_rules <- -1 * (1 - sum(p_old)) + sum(p_old * w_old) # new rules # choose 5 from 59 white balls, 1 from 35 red balls # probabilities of winning powerball powerball_new <- function(w, r) ch(5,w)*ch(54,5-w)/ch(59,5)*ch(1,r)*ch(34,1-r)/ch(35,1) # 9 ways to win p_new <- vector("numeric", length=9) p_new[1] <- powerball_new(5, 1) # five white + powerball_new p_new[2] <- powerball_new(5, 0) # five white p_new[3] <- powerball_new(4, 1) # four white + powerball_new p_new[4] <- powerball_new(4, 0) # four white p_new[5] <- powerball_new(3, 1) # three white + powerball_new p_new[6] <- powerball_new(3, 0) # three white p_new[7] <- powerball_new(2, 1) # two white + powerball_new p_new[8] <- powerball_new(1, 1) # one white + powerball_new p_new[9] <- powerball_new(0, 1) # powerball_new # winnings # jackpots start $20M larger than before # second prize is $1M instead of $0.2M # prize for powerball only is $4 instead of $3 w_new <- vector("numeric", length=9) w_new[1] <- 1000000 * (average_jackpot + 20) w_new[2] <- 1000000 w_new[3] <- 10000 w_new[4] <- 100 w_new[5] <- 100 w_new[6] <- 7 w_new[7] <- 7 w_new[8] <- 4 w_new[9] <- 4 # expected winnings (loss) # cose to play is $2 instead of $1 expected_winnings_new_rules <- -2 * (1 - sum(p_new)) + sum(p_new * w_new)I found this picture apropos (from

`http://www.toxel.com/inspiration/2009/09/18/12-creative-toilet-paper-designs/`):

To

**leave a comment**for the author, please follow the link and comment on his blog:**BioStatMatt » R**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...