I have always run simulations but a friend said to use factorials as in "next 5 numbers" example below.( He is on vacation for 2 weeks or I would sit him down and show me how to use factorials)
It is beyond me.
I can get this far using a sledge hammer approach.
next 2 numbers
unique/repeats
2/0 (38/38)*(37/38) = 0.973684211
1/1 (38/38)*(1/38) = 0.026315789
next 3 numbers
unique/repeats
3/0 (38/38)*(37/38)*(36/38) = 0.922437673
2/1 [(38/38)*(37/38)*(2/38)]+[(38/38)*(1/38)*(37/38)] = 0.076869806
1/2 (38/38)*(1/38)*(1/38) = 0.000692521
next 4 numbers
unique/repeats
4/0 (38/38)*(37/38)*(36/38)*(35/38) = 0.849613646
3/1 [(38/38)*(37/38)*(36/38)*(3/38)]+[(38/38)*(37/38)*(2/38)*(36/38)]+[((38/38)*(1/38)*(37/38)*(36/38))] = 0.145648054
2/2 1-(D21(4/0)+D22(3/1)+D24(1/3)) = 0.004720076
1/3 (38/38)*(1/38)*(1/38)*(1/38) = 0.000018224
Using the sledge hammer approach becomes time consuming if you want to go up to 38 spins.
There must be a recursive formula.
next 5 numbers
5/0 =(FACT(38)/FACT(33))/(38^5) = 0.760180631
4/1 =((FACT(38)/FACT(34))/(38^4))*(10/38) = 0.223582539
3/2 =((FACT(38)/FACT(35))/(38^3))*((25/38)^1/38)... I do not understand ((25/38)^1/38) = 0.015970181
I'm lost at this point!!!
2/3
1/4
Any good ideas on how to create a recursive formula?
For now I stick with simulations.
If so,
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
P(0,0) = 1;
P(0,m) = P(n,0) = 0;
Quote: weaselmanI am not sure I understand what you are trying to do ... Are you looking for the probability of m unique numbers out of n trials?
If so,
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
P(0,0) = 1;
P(0,m) = P(n,0) = 0;
yes
Take my example of the next 4 spins.
I want to know the probability of ALL the possible outcomes of exactly 4 spins.
unique/repeats
4/0 (38/38)*(37/38)*(36/38)*(35/38) = 0.849613646
In 4 spins NO repeat numbers
3/1 [(38/38)*(37/38)*(36/38)*(3/38)]+[(38/38)*(37/38)*(2/38)*(36/38)]+[((38/38)*(1/38)*(37/38)*(36/38))] = 0.145648054
In 3 spins 1 repeat number... and it could happen on the 2nd, 3rd or 4th spin
2/2 1-(D21(4/0)+D22(3/1)+D24(1/3)) = 0.004720076
1/3 (38/38)*(1/38)*(1/38)*(1/38) = 0.000018224
In 4 spins all numbers are the same. 3 repeats
Let me see if your formula will work.
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
There must be a power in there somewhere
If you just look at the number of uniques, you avoid all those problems - it's clearly 4 in one case, and 3 in the other.
Quote: guido111
Let me see if your formula will work.
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
There must be a power in there somewhere
The power (and the factorial) is hidden in the recursion.
Quote: weaselman
If you just look at the number of uniques, you avoid all those problems - it's clearly 4 in one case, and 3 in the other.
So I understand guido's question.
In 4 consecutive spins on an American Roulette wheel (38 numbers)
There could be 4 unique numbers (1,2,3,4)
3 unique numbers (1,2,3,3,)or(1,2,2,3)or(1,1,2,3)
2 unique numbers (1,1,2,2)or(1,2,1,2)
1 unique number(7,7,7,7)
To use this formula:
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
m=unique numbers=3
n=spins=4
= (39-3)/38*P(4-1,3-1) + (4-1)/38*P(4-1,3);
question:what is P(4-1,3-1) or what is the (,)
is it 4-1^3-1
can this be done in Excel or a spreadsheet?
Quote: 7winner
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
Sure. Number 39 consequentive columns 0 through 38. The column number is will correspond to N.
Now number 39 rows 0 through 39, the row number will be M.
Fill the column #0 and the row #0 with zeroes, except put 1 into the corner cell (0 column, 0 row);
Now, pick the next empty cell (1,1), and put the formula into it, replacing P(n-1,m-1) with the reference to the cell one to the left and one up, and P(n-1,m) wiht the one to the left in the same row.
Fill in the rest of the matrix (excel should take care of updating the cell references for you), and enjoy :)
Quote: weaselmanSure. Number 39 consequentive columns 0 through 38. The column number is will correspond to N.
Now number 39 rows 0 through 39, the row number will be M.
Fill the column #0 and the row #0 with zeroes, except put 1 into the corner cell (0 column, 0 row);
Now, pick the next empty cell (1,1), and put the formula into it, replacing P(n-1,m-1) with the reference to the cell one to the left and one up, and P(n-1,m) wiht the one to the left in the same row.
Fill in the rest of the matrix (excel should take care of updating the cell references for you), and enjoy :)
Thank you.
Nice work. Now I see the light.
Quote: weaselman
Fill in the rest of the matrix (excel should take care of updating the cell references for you), and enjoy :)
Thank you weaselman.
and I do enjoy.
That was easy to do and to understand!
I better stop using sledge hammers to do precision math work!
weaselman, I have this exact question too, but I'm afraid I don't understand your answer.Quote: weaselmanAre you looking for the probability of m unique numbers out of n trials? If so,
P(n,m) = (39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);
(1) Where did the 39 come from? Is it just the number of possible outcomes of one trial plus one?
(2) Are the 38's the number of possible outcomes from one trial?
(3) The recursion looks like it will happen forever. Indeed, when I call the function with Javascript, I get the error "Maximum call stack size exceeded."
<input id=output onclick=this.value=P(37,37)>
<script>
function P(n,m) { return P(39-m)/38*P(n-1,m-1) + (n-1)/38*P(n-1,m);}
</script>
How can this be programmed (or written without recursion, so I can program it)?
for Excel, it is slow and messy just for a 39x39 matrix for each cell probabilityQuote: MichaelBluejayweaselman, I have this exact question too, but I'm afraid I don't understand your answer.
How can this be programmed (or written without recursion, so I can program it)?
R is way easier using a transition matrix (even Excel vba) and can easily be converted to javascript.
This is actually a variation of the coupon collecting problem, number of coupons collected and the probabilities after N draws.
My R code can be found here for any interested: https://sites.google.com/view/krapstuff/roulette
section 1r.
results for 37 numbers and 37 spins
u=24 means 24 unique numbers
> cc.draws(37,37)#0 Roulette, 37 numbers and spins
[1] "Number of numbers:37, spins:37, mean numbers show:23.5745, mean numbers NOT shown:13.4255"
not drawn Probability cumulative
u=1 36 3.505402835209287e-57 3.505402835209287e-57
u=2 35 8.672020148914835e-45 8.672020148918339e-45
u=3 34 3.314692573547716e-37 3.314692660267917e-37
u=4 33 1.181828396058428e-31 1.181831710751088e-31
u=5 32 3.000862968528566e-27 3.000981151699641e-27
u=6 31 1.353451338520529e-23 1.353751436635699e-23
u=7 30 1.768441721182332e-20 1.769795472618967e-20
u=8 29 8.959214842349408e-18 8.976912797075598e-18
u=9 28 2.122121911879776e-15 2.131098824676851e-15
u=10 27 2.668810406674974e-13 2.690121394921743e-13
u=11 26 1.950286896969477e-11 1.977188110918694e-11
u=12 25 8.848652985269136e-10 9.046371796361005e-10
u=13 24 2.620176869821741e-08 2.710640587785351e-08
u=14 23 5.261661586746048e-07 5.532725645524582e-07
u=15 22 7.383252426941282e-06 7.93652499149374e-06
u=16 21 7.411821128636426e-05 8.2054736277858e-05
u=17 20 0.0005422692213502838 0.0006243239576281418
u=18 19 0.00293391179997579 0.003558235757603932
u=19 18 0.01187191625199462 0.01543015200959855
u=20 17 0.03623411297966621 0.05166426498926475
u=21 16 0.08391608620844208 0.1355803511977068
u=22 15 0.1480232196433522 0.2836035708410591
u=23 14 0.1991885036499151 0.4827920744909742
u=24 13 0.2043690022411817 0.6871610767321559
u=25 12 0.1594366767704862 0.8465977535026421
u=26 11 0.0940910790104586 0.9406888325131006
u=27 10 0.04167532060124458 0.9823641531143452
u=28 9 0.01370132987004642 0.9960654829843917
u=29 8 0.003293428397655762 0.9993589113820475
u=30 7 0.0005672008922863491 0.9999261122743338
u=31 6 6.81047323781154e-05 0.9999942170067119
u=32 5 5.492144751551008e-06 0.9999997091514634
u=33 4 2.821730077624601e-07 0.9999999913244711
u=34 3 8.540410436050481e-09 0.9999999998648816
u=35 2 1.342486662710851e-10 0.9999999999991303
u=36 1 8.684549839638909e-13 0.9999999999999988
u=37 0 1.303986462408241e-15 1
[1] "Number of numbers:37, spins:37, mean numbers show:23.5745, mean numbers NOT shown:13.4255"
R can suffer from decimal rounding errors (well known) as well as javascript
there are ways to get around that
added: 8/19
for a non Markov chain solution
using inclusion/exclusion
pari/gp code (online here: https://pari.math.u-bordeaux.fr/gp.html)
pari/gp is arbitrary precision
(less code than R Markov chain)
gp > \\ exact X uniques V2
gp > s=37;\\spins
gp > u=24;\\uniques
gp > n=37;\\number of numbers
gp > a=binomial(s,u)*sum(k=0,u,((-1)^k*\
binomial(u,k)*(u-k)^n)/n^s);
gp > aDec=1.*a;
gp > print(a)
%6 = 1575706646773794798146077150283100638656856064000000000/7710105884424969623139759010953858981831553019262380893
gp > print(aDec)
%7 = 0.20436900224118169584948252577079534716