Hi folks,
I analyzed 5 million RNG single zero spins to gather some stats about how many spins go by before all 37 numbers have hit.
There were 32 209 sessions.
Least amount of spins where all 37 numbers hit was 60. This happened once. 37 numbers hitting in less than 66 spins occurred only 4 times.
Most amount of spins before all numbers hit was 525.
Average number of spins before all numbers hit was 155.
Median was 147 spins.
I have attached a file that shows the stats.
The left is the session length, and the right number is how many times a session ended in the test.
So:
60 1
61 0
62 0
63 1
Only once a session ended at spin 60 and spin 63 (the last "sleeper" hit on that spin) and never did a session end on spin 61 or 62.
525 is an amazing number. Hard to believe but i am sure it's true.
Good lesson for those chasing sleepers. Thank you for interesting info.
Quote from: iggiv on December 16, 2014, 01:51:19 AM
525 is an amazing number. Hard to believe but i am sure it's true.
Good lesson for those chasing sleepers. Thank you for interesting info.
You're welcome and thanks for the comment. :)
Hi folks,
I just analyzed 5 million spins but focused on when one of the last two sleepers hit.
There were 42 175 sessions.
Minimum amount of spins before 36/37 numbers hit was 52.
Maximum amount of spins before 36 out of 37 numbers hit was 314 spins.
Average session length when one of the last 2 sleepers to hit was 118.5 spins.
Median was 115.
Again I have attached a file with the stats in detail.
Hi Teorule,
Some decades ago I read some German "Schedules" with "PLEIN-ROTATIONEN" (cycles á 37 spins).
Your impressive stats confirm the old truth that sleepers can sleep very long.
Your stats on the two most sleeping numbers may inspire someone to look at sleeping splits.
In area 0-36 there are 60 splits (cheveaux).
The old German roulette stats also included repeats. I hope that you´ll pay attention to repeats too!
QuoteMost amount of spins before all numbers hit was 525
I've had 1 number sleep for 647 spins when I did the same type of test you have done, and that was probably 5 years ago now. Since then I have deduced, speaking for RNG play at NoZero BetVoyager, the best bet odds you can get is 50/50 could be 18 numbers or red/black, every bets a guess at the end of the day, even on live wheels. Why is 50/50 the best, well, compare it with playing 24 numbers on double dozens, more wins bigger losses, 50/50 medium wins and easier to recover/chase. All my tests lately are purely MM betting 1 colour.
Thanks, Teo.
I wrote a similar program a while ago to generate these kinds of stats. There's a classic problem in probability called the "Coupon Collector's Problem":
Given N coupons, how many draws do you have to make before you've drawn each coupon at least once? Obviously, in a roulette context, the coupons are spins, but you could apply it to streets, double-streets etc, just replace 37 with 12, 6 or whatever.
The program can find the average number of trials in cases where not all coupons are collected, and also the probability that at least X coupons will be collected within Y trials. e.g. The "law of the third" says that roughly 24 unique numbers will hit in 37 trials, but what is the probability that at least 24 numbers will hit in 37 trials?
The program input is:
Quotecoupons 24 37 37
output:
QuoteAverage number of trials needed to collect
24 coupons from a set of 37 coupons = 38
Maximum number of trials needed was 69
Minimum number of trials needed was 24
Probability of collecting at least
24 coupons in 37 trials = 51.489 %
Or, what is the probability that in 20 spins, at least 8 streets will have shown up?
Input:
Quotecoupons 8 12 20
Output:
QuoteAverage number of trials needed to collect
8 coupons from a set of 12 coupons = 13
Maximum number of trials needed was 35
Minimum number of trials needed was 8
Probability of collecting at least
8 coupons in 20 trials = 98.77 %
This program was purely for my own use, so it only runs on a Linux command line, but if anyone's interested, here's the code (it would be quite easy to re-write in the language of your choice):
'-----------------------------------------------------------
' Given n coupons, how many coupons do you expect you need
' to draw with replacement before having drawn each coupon
' at least once?
' http://en.wikipedia.org/wiki/Coupon_collector%27s_problem
' The program finds the average number of trials in cases
' where not all coupons are collected, also the maximum
' and minimum number of trials, and the probability that
' at least m coupons will be collected within v trials.
'-----------------------------------------------------------
'xfce4-terminal -H --geometry 90x30 -e @
OPTION BASE 1
'can take a long time for large N.
CONST RUNS = 100000
SPLIT ARGUMENT$ BY " " TO arg$ SIZE dim
IF dim < 4 THEN
PRINT "Usage: coupons <m> <n> <v>"
PRINT "m: Number of coupons to be collected (m <= n)"
PRINT "n: Number of coupons in the set."
PRINT "v: Number of trials within which the probability"
PRINT "is P that all coupons are collected."
END
ENDIF
M = VAL(arg$[2])
N = VAL(arg$[3])
V = VAL(arg$[4])
GLOBAL coupons TYPE NUMBER ARRAY N
DECLARE t[RUNS]
trials = 0
sum = 0
class = 0
max_trials = 0
min_trials = 99999
FOR i = 1 TO RUNS
REPEAT
x = RANDOM(N) + 1
INCR trials
INCR coupons[x]
drawn = 0
FOR j = 1 TO N
IF coupons[j] > 0 THEN INCR drawn
NEXT j
IF drawn = M OR drawn = N THEN
t[i] = trials
INCR sum, trials
IF trials <= V THEN INCR class
FOR k = 1 TO N
coupons[k] = 0
NEXT k
' get max & min
IF trials > max_trials THEN
max_trials = trials
END IF
IF trials < min_trials THEN
min_trials = trials
END IF
trials = 0
END IF
UNTIL drawn = M OR drawn = N
NEXT i
p# = class/RUNS
PRINT
PRINT "Average number of trials needed to collect "
PRINT M, " coupons from a set of ", N, " coupons = ", sum/RUNS + 1
PRINT
PRINT "Maximum number of trials needed was ", max_trials
PRINT "Minimum number of trials needed was ", min_trials
PRINT
IF V NE 0 THEN
PRINT "Probability of collecting at least "
PRINT M, " coupons in ", V, " trials = ", 100 * p#, " %\n"
END IF
And I've attached the binary, in case there are any Linux users here.
[attachurl=1]
Teo, I wasn't trying to hijack your thread or steal your thunder, so feel free to delete if you like! (I just thought it seemed like an on-topic contribution).
Thank you Superman and Dane for the helpful posts!
Bayes,
Thanks for your most helpful post, and attachment! You really are an asset to the forum, and really know your stuff! It is a great thing you are a mod here.
:thumbsup:
Quote from: Superman on December 16, 2014, 08:13:51 AM
I've had 1 number sleep for 647 spins when I did the same type of test you have done, and that was probably 5 years ago now. Since then I have deduced, speaking for RNG play at NoZero BetVoyager, the best bet odds you can get is 50/50 could be 18 numbers or red/black, every bets a guess at the end of the day, even on live wheels. Why is 50/50 the best, well, compare it with playing 24 numbers on double dozens, more wins bigger losses, 50/50 medium wins and easier to recover/chase. All my tests lately are purely MM betting 1 colour.
Imspirit ran extensive tests on a perfectly fair 50/50 game and basically just reaffirmed what we believed, and what you post here. The best I can do (now at least) is just play a non zero wheel. I remember he had an even chance that stayed ahead of the other for billions or maybe even trillions of spins.
Quote from: Bayes on December 16, 2014, 10:04:10 AM
Thanks, Teo.
I wrote a similar program a while ago to generate these kinds of stats. There's a classic problem in probability called the "Coupon Collector's Problem":
Given N coupons, how many draws do you have to make before you've drawn each coupon at least once?
Obviously, in a roulette context, the coupons are spins, but you could apply it to streets, double-streets etc, just replace 37 with 12, 6 or whatever.
The program can find the average number of trials in cases where not all coupons are collected, and also the probability that at least X coupons will be collected within Y trials. e.g. The "law of the third" says that roughly 24 unique numbers will hit in 37 trials, but what is the probability that at least 24 numbers will hit in 37 trials?
The program input is:
output:
Or, what is the probability that in 20 spins, at least 8 streets will have shown up?
Input:
Output:
This program was purely for my own use, so it only runs on a Linux command line, but if anyone's interested, here's the code (it would be quite easy to re-write in the language of your choice):
'-----------------------------------------------------------
' Given n coupons, how many coupons do you expect you need
' to draw with replacement before having drawn each coupon
' at least once?
' http://en.wikipedia.org/wiki/Coupon_collector%27s_problem
' The program finds the average number of trials in cases
' where not all coupons are collected, also the maximum
' and minimum number of trials, and the probability that
' at least m coupons will be collected within v trials.
'-----------------------------------------------------------
'xfce4-terminal -H --geometry 90x30 -e @
OPTION BASE 1
'can take a long time for large N.
CONST RUNS = 100000
SPLIT ARGUMENT$ BY " " TO arg$ SIZE dim
IF dim < 4 THEN
PRINT "Usage: coupons <m> <n> <v>"
PRINT "m: Number of coupons to be collected (m <= n)"
PRINT "n: Number of coupons in the set."
PRINT "v: Number of trials within which the probability"
PRINT "is P that all coupons are collected."
END
ENDIF
M = VAL(arg$[2])
N = VAL(arg$[3])
V = VAL(arg$[4])
GLOBAL coupons TYPE NUMBER ARRAY N
DECLARE t[RUNS]
trials = 0
sum = 0
class = 0
max_trials = 0
min_trials = 99999
FOR i = 1 TO RUNS
REPEAT
x = RANDOM(N) + 1
INCR trials
INCR coupons[x]
drawn = 0
FOR j = 1 TO N
IF coupons[j] > 0 THEN INCR drawn
NEXT j
IF drawn = M OR drawn = N THEN
t[i] = trials
INCR sum, trials
IF trials <= V THEN INCR class
FOR k = 1 TO N
coupons[k] = 0
NEXT k
' get max & min
IF trials > max_trials THEN
max_trials = trials
END IF
IF trials < min_trials THEN
min_trials = trials
END IF
trials = 0
END IF
UNTIL drawn = M OR drawn = N
NEXT i
p# = class/RUNS
PRINT
PRINT "Average number of trials needed to collect "
PRINT M, " coupons from a set of ", N, " coupons = ", sum/RUNS + 1
PRINT
PRINT "Maximum number of trials needed was ", max_trials
PRINT "Minimum number of trials needed was ", min_trials
PRINT
IF V NE 0 THEN
PRINT "Probability of collecting at least "
PRINT M, " coupons in ", V, " trials = ", 100 * p#, " %\n"
END IF
And I've attached the binary, in case there are any Linux users here.
[attachurl=1]
Teo, I wasn't trying to hijack your thread or steal your thunder, so feel free to delete if you like! (I just thought it seemed like an on-topic contribution).
Would you be willing to share your Labby 1.5 source code? I wanted to make some modifications such as a reverse Labouchere function.