August 15th, 2014 at 12:15:31 AM
permalink
Hi,
Can someone please explain me the calculation formula for "Small", Tall" and "All" win probability calculations?
Small bet wins if the shooter rolls a 2, 3, 4, 5, and 6 before rolling a seven - The probability as presented in the site are 0.026354
Tall bet wins if the shooter rolls an 8, 9, 10, 11, and 12 before rolling a seven - The probability as presented in the site are 0.026354
All bet wins if the shooter rolls a 2, 3, 4, 5, 6, 8, 9, 10, 11, and 12 before rolling a seven - The probability as presented in the site are 0.005258
Although the site presents the probability ,I'm interesting in the detailed calculation.
Thanks,
Dryfus
Can someone please explain me the calculation formula for "Small", Tall" and "All" win probability calculations?
Small bet wins if the shooter rolls a 2, 3, 4, 5, and 6 before rolling a seven - The probability as presented in the site are 0.026354
Tall bet wins if the shooter rolls an 8, 9, 10, 11, and 12 before rolling a seven - The probability as presented in the site are 0.026354
All bet wins if the shooter rolls a 2, 3, 4, 5, 6, 8, 9, 10, 11, and 12 before rolling a seven - The probability as presented in the site are 0.005258
Although the site presents the probability ,I'm interesting in the detailed calculation.
Thanks,
Dryfus
August 15th, 2014 at 12:54:07 AM
permalink
HiQuote: DryfusHi,
Although the site presents the probability ,I'm interesting in the detailed calculation.
try here
https://wizardofvegas.com/forum/gambling/craps/17175-new-all-high-all-low-casino-craps-prop-bet/2/#post332587
There are many methods that work.
Some more challenging than others depending on your math skill level
I did not yet add the all small/all tall matrix/recursion solution (I have them completed)
There are 1022 possible states the ALL can be in plus 3 more for 0, fail and success
we just fill in the transition probabilities and sum the products (a little more involved actually)
only 30 states for small/tall plus 3 more for 0, fail and success
by states, I mean the number of numbers hit starting with 0
we could hit just 1# 10C1 = 10 so there are 10#s that can be the first #
now, having the 1st we want a second and there are
10C2 = 45 possible combinations (where order does not matter)
like so and we can calculate the probabilities of moving from each of the first 10 states to these 45 states
and so on. lots of math
10C3 = 120 possible 3# combos
10C4 = 210
10C5 = 252
10C6 = 210
10C7 = 120
10C8 = 45
10C9 = 10
Hey looks like Pascal's Triangle
we could hit just 1# 10C1 = 10 so there are 10#s that can be the first #
now, having the 1st we want a second and there are
10C2 = 45 possible combinations (where order does not matter)
like so
2,3
2,4
2,5
2,6
2,8
2,9
2,10
2,11
2,12
3,4
3,5
3,6
3,8
3,9
3,10
3,11
3,12
4,5
4,6
4,8
4,9
4,10
4,11
4,12
5,6
5,8
5,9
5,10
5,11
5,12
6,8
6,9
6,10
6,11
6,12
8,9
8,10
8,11
8,12
9,10
9,11
9,12
10,11
10,12
11,12
and so on. lots of math
10C3 = 120 possible 3# combos
10C4 = 210
10C5 = 252
10C6 = 210
10C7 = 120
10C8 = 45
10C9 = 10
Hey looks like Pascal's Triangle
Maybe if get some time, it is Friday,
I can clean up my Excel workbooks and link to them online
Once you see how it it done, it is quite easy IMO, just a bunch bunch of calculations that a computer can do lickety–split
Sally
I also forgot to mention we can just list all the permutations of the winning sequences (small/tall for example)
5! = 120 of them
2 3 4 5 6
2 3 4 6 5
2 3 5 4 6
2 3 5 6 4
2 3 6 4 5
2 3 6 5 4
2 4 3 5 6
2 4 3 6 5
2 4 5 3 6
2 4 5 6 3
2 4 6 3 5
2 4 6 5 3
2 5 3 4 6
2 5 3 6 4
2 5 4 3 6
2 5 4 6 3
2 5 6 3 4
2 5 6 4 3
2 6 3 4 5
2 6 3 5 4
2 6 4 3 5
2 6 4 5 3
2 6 5 3 4
2 6 5 4 3
3 2 4 5 6
3 2 4 6 5
3 2 5 4 6
3 2 5 6 4
3 2 6 4 5
3 2 6 5 4
3 4 2 5 6
3 4 2 6 5
3 4 5 2 6
3 4 5 6 2
3 4 6 2 5
3 4 6 5 2
3 5 2 4 6
3 5 2 6 4
3 5 4 2 6
3 5 4 6 2
3 5 6 2 4
3 5 6 4 2
3 6 2 4 5
3 6 2 5 4
3 6 4 2 5
3 6 4 5 2
3 6 5 2 4
3 6 5 4 2
4 2 3 5 6
4 2 3 6 5
4 2 5 3 6
4 2 5 6 3
4 2 6 3 5
4 2 6 5 3
4 3 2 5 6
4 3 2 6 5
4 3 5 2 6
4 3 5 6 2
4 3 6 2 5
4 3 6 5 2
4 5 2 3 6
4 5 2 6 3
4 5 3 2 6
4 5 3 6 2
4 5 6 2 3
4 5 6 3 2
4 6 2 3 5
4 6 2 5 3
4 6 3 2 5
4 6 3 5 2
4 6 5 2 3
4 6 5 3 2
5 2 3 4 6
5 2 3 6 4
5 2 4 3 6
5 2 4 6 3
5 2 6 3 4
5 2 6 4 3
5 3 2 4 6
5 3 2 6 4
5 3 4 2 6
5 3 4 6 2
5 3 6 2 4
5 3 6 4 2
5 4 2 3 6
5 4 2 6 3
5 4 3 2 6
5 4 3 6 2
5 4 6 2 3
5 4 6 3 2
5 6 2 3 4
5 6 2 4 3
5 6 3 2 4
5 6 3 4 2
5 6 4 2 3
5 6 4 3 2
6 2 3 4 5
6 2 3 5 4
6 2 4 3 5
6 2 4 5 3
6 2 5 3 4
6 2 5 4 3
6 3 2 4 5
6 3 2 5 4
6 3 4 2 5
6 3 4 5 2
6 3 5 2 4
6 3 5 4 2
6 4 2 3 5
6 4 2 5 3
6 4 3 2 5
6 4 3 5 2
6 4 5 2 3
6 4 5 3 2
6 5 2 3 4
6 5 2 4 3
6 5 3 2 4
6 5 3 4 2
6 5 4 2 3
6 5 4 3 2
then calculate the probabilities for each and add them up
another snap shot in Excel for small/tall
examples
23456 = 120/1,247,400
23465 =120/1,134,000
the denominator is what changes for each different sequence
because from the starting 21 ways the bet could be resolved (win or loss)
it gets smaller with each number hit
do you see why?
Okay...
the All requires 10! calculations (3,628,800) using this method (oh, actually not as 2,3,4,5,6,8,9,10,11,12 and 12,3,4,5,6,8,9,10,11,2 have the same probabilities. I have to look closer into this too) and I just did (fri afternoon)
3,628,800 /2^5 = 113,400 unique permutations (32 ways for each) and I have a unique permutation generator for the free program R
sure Excel could do this too
this method should be avoided unless you just let a computer do it for you, as I did.
can not even imagine doing this by hand
here is the snapshot and the probability is the same as all the other methods that have been used
calculus, inclusion-exclusion (R and Excel), Matrix Algebra, recursion and summing permutation probabilities
WOW!
the sequences used 0 for 2 and 12
1 for 3 and 11 and so on
I guess I can explain every method if you have a request for a favorite one, except the calculus one
I just can't do everything
but watch out for what I do accomplish
Sally
I Heart Vi Hart
August 15th, 2014 at 11:59:47 PM
permalink
Hi Sally,
Wow! never imagine to get such good explanation, thanks!
BTW, I've ran simulation in R and got nice approximations for these probabilities:
Code:
Here are the simulation results of 100,000 Iterations:
Again, thank you very much for your answer,
Dryfus
Wow! never imagine to get such good explanation, thanks!
BTW, I've ran simulation in R and got nice approximations for these probabilities:
Code:
Iterations=100000
Craps <- matrix(0,nrow=Iterations,ncol=11)
colnames(Craps) <- c(2:12)
Results <- matrix(0,nrow=2,ncol=3)
colnames(Results) <- c("Small","Tall","All")
rownames(Results) <- c("Frequency","Probability")
for (i in 1:Iterations)
{
Roll=0
while (Roll!=7)
{
Roll <- sum(sample(c(1:6),2,replace=TRUE))
Craps[i,toString(Roll)] <- Craps[i,toString(Roll)]+1
}
#Small (rolls 2,3,4,5,6 before 7)
if (prod(Craps[i,1:5])>0)
Results[1,"Small"]=Results[1,"Small"]+1
#Tall (rolls 8,9,10,11,12 before 7)
if (prod(Craps[i,7:11])>0)
Results[1,"Tall"]=Results[1,"Tall"]+1
#All (rolls 2,3,4,5,6,8,9,10,11,12 before 7)
if (prod(Craps[i,1:11])>0)
Results[1,"All"]=Results[1,"All"]+1
i=i+1
}
Results[2,]=Results[1,]/Iterations
format(Results,scientific=FALSE)
Here are the simulation results of 100,000 Iterations:
Small bet Win | Tall bet Win | All bet Win | |
---|---|---|---|
Frequency | 2,615 | 2,606 | 503 |
Probability | 0.02615 | 0.02606 | 0.00503 |
Again, thank you very much for your answer,
Dryfus
August 16th, 2014 at 11:07:27 AM
permalink
yes simulations can work too, nice they areQuote: DryfusAgain, thank you very much for your answer,
Dryfus
and thank you
it was fun and I got a chance to finish my bonus craps projects too :)
I got this running your sim one time (about 50 seconds time)
Small Tall All
Frequency 2.638e+03 2.564e+03 5.14e+02
Probability 2.638e-02 2.564e-02 5.14e-03
The fastest way IMO to solve these type of questions (if you do or do not understand the math behind the bet)
is to use the code I linked to
in R for any subset
it is done before you know it
Sally
> ##################################################################
> # Odds against rolling a subset of numbers before a single number - The All bet
> ##################################################################
> nums = c(2,3,4,5,6,8,9,10,11,12,7) # Last must occur only after all others in any order
>
> in_36 = ifelse(nums <= 7, nums-1, 13-nums) # Ways to make each number
> i = length(in_36)
> p = 0
> for (j in 1:(i-1)) { # Last number before j numbers
+ terms = combn(in_36[1:(i-1)],j) # Matrix w/combos of j numbers in C(i-1,j) columns
+ for (k in 1:ncol(terms)) { # Sum each column, compute and add probabilities
+ p = p + (-1)^(j+1) * in_36/(in_36 + sum(terms[1:j,k]))
+ }
+ }
> p1 = (1-p)
> p1
[1] 0.005257704
> ch = 1/(1-p)
> ch
[1] 190.1971
> Odds.to.1 = 1/(1-p) - 1
> Odds.to.1
[1] 189.1971
> ##################################################################
> # Odds against rolling a subset of numbers before a single number - Small or Tall
> ##################################################################
> nums = c(2,3,4,5,6,7) # Last must occur only after all others in any order
>
> in_36 = ifelse(nums <= 7, nums-1, 13-nums) # Ways to make each number
> i = length(in_36)
> p = 0
> for (j in 1:(i-1)) { # Last number before j numbers
+ terms = combn(in_36[1:(i-1)],j) # Matrix w/combos of j numbers in C(i-1,j) columns
+ for (k in 1:ncol(terms)) { # Sum each column, compute and add probabilities
+ p = p + (-1)^(j+1) * in_36/(in_36 + sum(terms[1:j,k]))
+ }
+ }
> p1 = (1-p)
> p1
[1] 0.02635391
> ch = 1/(1-p)
> ch
[1] 37.94503
> Odds.to.1 = 1/(1-p) - 1
> Odds.to.1
[1] 36.94503
I Heart Vi Hart
July 5th, 2018 at 10:39:42 AM
permalink
The following Python code computes the odds exactly. The basic idea is that the probability of rolling one set of numbers before another is the sum of rolling each number first then rolling the rest before the other set. So, for example, the probability of rolling both a 2 and a 3 before a 7 is the probability of rolling a 2 before a 3 or a 7 times the probability of rolling a 3 before a 7 plus the probability of rolling a 3 before a 2 or a 7 times the probability of rolling a 2 before a 7. That is,
P({2,3} before {7}) = P({2} before {3,7}) * P({3} before {7}) + P({3} before {2,7}) * P{{2} before {7})
When the set you want has just one number, the probability of rolling it before the set of other numbers is the number of ways to make the one number divided by the number of ways to make that number plus the others. So, for example, P({2} before {3,7}) = 1 / (2 + 6) = 1 /8.
The exact probabilities produced by the program are P(small) = P(tall) = 20049/760760 and P(all) = 126538525259/24067258815600
P({2,3} before {7}) = P({2} before {3,7}) * P({3} before {7}) + P({3} before {2,7}) * P{{2} before {7})
When the set you want has just one number, the probability of rolling it before the set of other numbers is the number of ways to make the one number divided by the number of ways to make that number plus the others. So, for example, P({2} before {3,7}) = 1 / (2 + 6) = 1 /8.
The exact probabilities produced by the program are P(small) = P(tall) = 20049/760760 and P(all) = 126538525259/24067258815600
#! /usr/bin/env python3
from fractions import Fraction
#0 1 2 3 4 5 6 7 8 9 10 11 12
way = [0, 0, 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1]
memo = { }
def ways(numbers):
w = 0;
for r in numbers:
w += way[r]
return w
def p(these, those):
if len(these) == 0: return 1;
if len(these) == 1:
for w in these:
return Fraction(1, 1 + Fraction(ways(those), ways(these)))
s = str(these) + str(those)
if s in memo: return memo[s]
v = Fraction(0)
full = these | those
for r in these:
only_r = frozenset([r])
full_but_r = full - only_r
these_without_r = these - only_r
v += p(only_r, full_but_r) * p(these_without_r, those)
memo[s] = v
return v
seven = frozenset([7])
small = frozenset([2, 3, 4, 5, 6])
tall = frozenset([8, 9, 10, 11, 12])
full = small | tall
print('small', p(small, seven))
print('tall ', p(tall, seven))
print('full ', p(full, seven))
July 5th, 2018 at 11:34:51 AM
permalink
Wow, hyrosen. Impressive first post. Welcome!
If the House lost every hand, they wouldn't deal the game.
July 10th, 2018 at 3:23:31 PM
permalink
Thanks. I just noticed a small error in my comment (not in the code). P({2} before {3,7}) = #2 / (#2 + #3 + #7) = 1 / (1 + 2 + 6) = 1 / 9 (not 1 / 8 as I have it).