About us
What does it take to nurture trust among folks for a new highly innovative system?
The answer is “A fair and transparent system certified by global leaders of the industry”
Welcome to the THEDRAWZONE , the platform for drawing true random numbers. Developed and designed by the R&D team of Betmacan Limited, the RNG module of THEDRAWZONE is certified by the none other than Itech Labs, Australia. The proven authenticity of randomly generated number is instrumental in building trust for gamers.
What did Itech Labs certify?
Itech Labs carried out rigorous testing and analyzed large data samples to confirm the accuracy and authenticity of the RNG module of MLP. Then they certified that the number drawn online is generated by RNG algorithm which is fair and truly random.
THEDRAWZONE uses this number to serve gaming application like MLP where players put stakes on their lucky numbers. The wins and losses are decided on the basis of what Random number is generated on THEDRAWZONE 's website.
Betmacan innovates to develop a cutting edge technology to create a customer centric system. We aim to make THEDRAWZONE the largest independent RNG platform which offers fair and trusted RNG, fan engagement and many more features in the roadmap.
The website THEDRAWZONE declares a random number every hour as its result. the gaming applications subscribed to it get the outcome in their website/application for the subscribed Drawevents.
THEDRAWZONE draws 24 DrawEvent outcomes as specified below:
S.No. | DRAWEVENT | DRAWEVENT TIME |
---|---|---|
1 | SILVER | 00:01:00 GMT |
2 | ICECOOL | 01:00:00 GMT |
3 | FUSION | 02:00:00 GMT |
4 | PRISM | 03:00:00 GMT |
5 | TOPAZ | 04:00:00 GMT |
6 | SOLAN | 05:00:00 GMT |
7 | KING | 06:00:00 GMT |
8 | ENJOY | 07:00:00 GMT |
9 | IVORY | 08:00:00 GMT |
10 | FREEDOM | 09:00:00 GMT |
11 | EMERALD | 10:00:00 GMT |
12 | ICE | 11:00:00 GMT |
13 | DIAMOND | 12:00:00 GMT |
14 | SONG | 13:00:00 GMT |
15 | DREAM | 14:00:00 GMT |
16 | RUBY | 15:00:00 GMT |
17 | PYRAMID | 16:00:00 GMT |
18 | FORTUNE | 17:00:00 GMT |
19 | ACE | 18:00:00 GMT |
20 | ROYAL | 19:00:00 GMT |
21 | AROMA | 20:00:00 GMT |
22 | EMPEROR | 21:00:00 GMT |
23 | PLATINUM | 22:00:00 GMT |
24 | PEARL | 23:00:00 GMT |
How it happens?
Every hour the inbuilt system triggers process to run the RNG system to generate sets of true random numbers in three steps. The process takes place online and is available to everybody to see it happening live! It’s indeed an absolute transparent system par excellence!
Step 1: The draw system generates a set of two-digit random numbers. This set contains 10 unique numbers.
Step 2: The system randomly selects 5 unique numbers out of the set of 10 numbers.
Step 3: In the final step the system randomly selects the winning number of the drawevent. The winning number is randomly picked by the system from the set of 5 numbers.
Each number is displayed in 2-digit format. The right-side digit (indicated as “R”) and the left-side digit (indicated as “L”). For example in the number 52, “5” is L and “2” is R.
The speed and timing of displaying draw results may slightly vary on different devices and internet speeds.
The last event and the upcoming event are displayed on the THEDRAWZONE website. There is countdown to the next drawevent to keep users informed all the time.
An online report of earlier drawevents is available on the website. One can see the respective results with respective to GMT as well as according to desired country’s time zone.
Tech aspect explained:
TheDrawZone has been tested by the best in the industry. After passing a number of tests over millions of data THEDRAWZONE has earned a reliability standard. THEDRAWZONE has accomplished a benchmark which speaks of undisputed fairness. The benchmark has been achieved after successfully passing a series of rigorous testing algorithms. THEDRAWZONE has employed two level testing. 1st level testing has been done by the R&D team of Betmacan Limited. The second level of testing has been done by the Itech Labs Australia.
A brief glimpse of the technical tests results has been mentioned below to get an overview of level of tests carried out to make THEDRAWZONE what it is now.
Chi square test: For testing goodness of fit is used to decide whether there is any difference between the observed (experimental) value and the expected (theoretical) value.
Die-Hard Tests: Quality of a Random Number Generator is measured by a series of Statistical tests known as DieHard Tests. The battery of tests is listed as below:
RESULTS OF BIRTHDAY SPACINGS TEST FOR randomdata2.bin
(no_bdays=1024, no_days/yr=2^24, lambda=16.00, sample size=500) | |||
Bits used | mean | chisqr | p-value |
---|---|---|---|
1 to 24 | 15.58 | 21.1130 | 0.221276 |
2 to 25 | 15.99 | 10.4316 | 0.884543 |
3 to 26 | 15.63 | 26.0474 | 0.073601 |
4 to 27 | 15.89 | 23.1292 | 0.145091 |
5 to 28 | 15.76 | 30.8750 | 0.020683 |
6 to 29 | 15.85 | 9.1698 | 0.934785 |
7 to 30 | 15.38 | 31.3200 | 0.018255 |
8 to 31 | 15.62 | 40.0416 | 0.001277 |
9 to 32 | 15.80 | 22.5925 | 0.162993 |
degree of freedoms is: 17 |
BIRTHDAY SPACINGS TEST : Combined p-values for 9 p-values observed :
Using KS Test | : 0.038379 |
Using Fisher Method | : 0.000388 |
Using KS Test (Kuiper) | : 0.039830 |
Using KS Test (A-D) | : 0.001609 |
It looks at a sequence of one million 32-bit random integers. Each set of five consecutive integers can be in one of 120 states, for the 5! possible orderings of five numbers. Thus the 5th, 6th, 7th,...numbers each provide a state. As many thousands of state transitions are observed, cumulative counts are made of the number of occurences of each state. Then the quadratic form in the weak inverse of the 120x120 covariance matrix yields a test equivalent to the likelihood ratio test that the 120 cell counts came from the specified (asymptotically) normal distribution with the specified 120x120 covariance matrix (with rank 99). This version uses 1,000,000 integers, twice.
OPERM5 test for file randomdata2.bin
(For samples of 1,000,000 consecutive 5-tuples)
Sample 1chisquare=103.550925 with df=99; p-value= 0.357251
Sample 2chisquare=94.200095 with df=99; p-value= 0.617604
This is the BINARY RANK TEST for 31x31 matrices. The leftmost 31 bits of 31 random integers from the test sequence are used |to form a 31x31 binary matrix over the field {0,1}. The rank is determined. That rank can be from 0 to 31, but ranks< 28 are rare, and their counts are pooled with those for rank 28.Ranks are found for 40,000 such random matrices and a chisquare test is performed on counts for ranks 31,30,28 and <=28.
Rank test for binary matrices (31x31) from randomdata2.bin | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
---|---|---|---|---|
r<=28 | 206 | 211.4 | 0.139 | 0.139 |
r=29 | 5198 | 5134.0 | 0.798 | 0.936 |
r=30 | 23176 | 23103.0 | 0.230 | 1.167 |
r=31 | 11420 | 11551.5 | 1.498 | 2.664 |
chi-square = 2.664 with df = 3; p-value = 0.446 |
This is the BINARY RANK TEST for 32x32 matrices. A random 32x32 binary matrix is formed, each row a 32-bit random integer.The rank is determined. That rank can be from 0 to 32, ranks less than 29 are rare, and their counts are pooled with those for rank 29. Ranks are found for 40,000 such random matrices and a chisquare test is performed on counts for ranks 32,31,30 and <=29.
Rank test for binary matrices (32x32) from randomdata2.bin | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
---|---|---|---|---|
r<=28 | 182 | 211.4 | 4.093 | 4.093 |
r=29 | 5102 | 5134.0 | 0.200 | 4.293 |
r=30 | 23001 | 23103.0 | 0.451 | 4.744 |
r=31 | 11715 | 11551.5 | 2.314 | 7.057 |
chi-square = 7.057 with df = 3; p-value = 0.070 |
This is the BINARY RANK TEST for 6x8 matrices. From each of six random 32-bit integers from the generator under test, a specified byte is chosen, and the resulting six bytes form a 6x8 binary matrix whose rank is determined. That rank can be from 0 to 6, but ranks 0,1,2,3 are rare; their counts are pooled with those for rank 4. Ranks are found for 100,000 random matrices, and a chi-square test is performed on counts for ranks 6,5 and (0,...,4) (pooled together).
Rank test for binary matrices (6x8) from randomdata2.bin | ||||
bits 1 to 8 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
---|---|---|---|---|
r<=4 | 978 | 944.3 | 1.203 | 1.203 |
r=5 | 21695 | 21743.9 | 0.110 | 1.313 |
r=6 | 77327 | 77311.8 | 0.003 | 1.316 |
chi-square = 1.316 with df = 2; p-value = 0.518 | ||||
bits 2 to 9 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 925 | 944.3 | 0.394 | 0.394 |
r=5 | 21792 | 21743.9 | 0.106 | 0.501 |
r=6 | 77283 | 77311.8 | 0.011 | 0.512 |
chi-square = 0.512 with df = 2; p-value = 0.774 | ||||
bits 3 to 10 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 940 | 944.3 | 0.020 | 0.020 |
r=5 | 21776 | 21743.9 | 0.047 | 0.067 |
r=6 | 77284 | 77311.8 | 0.010 | 0.077 |
chi-square = 0.077 with df = 2; p-value = 0.962 | ||||
bits 4 to 11 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 950 | 944.3 | 0.034 | 0.034 |
r=5 | 21610 | 21743.9 | 0.825 | 0.859 |
r=6 | 77440 | 77311.8 | 0.213 | 1.072 |
chi-square = 1.072 with df = 2; p-value = 0.585 | ||||
bits 5 to 12 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 932 | 944.3 | 0.160 | 0.160 |
r=5 | 21614 | 21743.9 | 0.776 | 0.936 |
r=6 | 77454 | 77311.8 | 0.262 | 1.198 |
chi-square = 1.198 with df = 2; p-value = 0.549 | ||||
bits 6 to 13 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 948 | 944.3 | 0.014 | 0.014 |
r=5 | 21569 | 21743.9 | 1.407 | 1.421 |
r=6 | 77483 | 77311.8 | 0.379 | 1.800 |
chi-square = 1.800 with df = 2; p-value = 0.406 | ||||
bits 7 to 14 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 952 | 944.3 | 0.063 | 0.063 |
r=5 | 21545 | 21743.9 | 1.819 | 1.882 |
r=6 | 77503 | 77311.8 | 0.473 | 2.355 |
chi-square = 2.355 with df = 2; p-value = 0.308 | ||||
bits 8 to 15 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 943 | 944.3 | 0.002 | 0.002 |
r=5 | 21819 | 21743.9 | 0.259 | 0.261 |
r=6 | 77238 | 77311.8 | 0.070 | 0.332 |
chi-square = 0.332 with df = 2; p-value = 0.847 | ||||
bits 9 to 16 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 885 | 944.3 | 3.724 | 3.724 |
r=5 | 21721 | 21743.9 | 0.024 | 3.748 |
r=6 | 77394 | 77311.8 | 0.087 | 3.835 |
chi-square = 3.835 with df = 2; p-value = 0.147 | ||||
bits 10 to 17 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 897 | 944.3 | 2.369 | 2.369 |
r=5 | 21741 | 21743.9 | 0.000 | 2.370 |
r=6 | 77362 | 77311.8 | 0.033 | 2.402 |
chi-square = 2.402 with df = 2; p-value = 0.301 | ||||
bits 11 to 18 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 896 | 944.3 | 2.470 | 2.470 |
r=5 | 21526 | 21743.9 | 2.184 | 4.654 |
r=6 | 77578 | 77311.8 | 0.917 | 5.571 |
chi-square = 5.571 with df = 2; p-value = 0.062 | ||||
bits 12 to 19 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 887 | 944.3 | 3.477 | 3.477 |
r=5 | 21595 | 21743.9 | 1.020 | 4.497 |
r=6 | 77518 | 77311.8 | 0.550 | 5.047 |
chi-square = 5.047 with df = 2; p-value = 0.080 | ||||
bits 13 to 20 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 924 | 944.3 | 0.436 | 0.436 |
r=5 | 21764 | 21743.9 | 0.019 | 0.455 |
r=6 | 77312 | 77311.8 | 0.000 | 0.455 |
chi-square = 0.455 with df = 2; p-value = 0.797 | ||||
bits 14 to 21 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 968 | 944.3 | 0.595 | 0.595 |
r=5 | 21945 | 21743.9 | 1.860 | 2.455 |
r=6 | 77087 | 77311.8 | 0.654 | 3.108 |
chi-square = 3.108 with df = 2; p-value = 0.211 | ||||
bits 15 to 22 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 969 | 944.3 | 0.646 | 0.646 |
r=5 | 21795 | 21743.9 | 0.120 | 0.766 |
r=6 | 77236 | 77311.8 | 0.074 | 0.840 |
chi-square = 0.840 with df = 2; p-value = 0.657 | ||||
bits 16 to 23 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 932 | 944.3 | 0.160 | 0.160 |
r=5 | 21616 | 21743.9 | 0.752 | 0.913 |
r=6 | 77452 | 77311.8 | 0.254 | 1.167 |
chi-square = 1.167 with df = 2; p-value = 0.558 | ||||
bits 17 to 24 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 925 | 944.3 | 0.394 | 0.394 |
r=5 | 21840 | 21743.9 | 0.425 | 0.819 |
r=6 | 77235 | 77311.8 | 0.076 | 0.895 |
chi-square = 0.895 with df = 2; p-value = 0.639 | ||||
bits 18 to 25 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 932 | 944.3 | 0.160 | 0.160 |
r=5 | 21575 | 21743.9 | 1.312 | 1.472 |
r=6 | 77493 | 77311.8 | 0.425 | 1.897 |
chi-square = 1.897 with df = 2; p-value = 0.387 | ||||
bits 19 to 26 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 923 | 944.3 | 0.480 | 0.480 |
r=5 | 21794 | 21743.9 | 0.115 | 0.596 |
r=6 | 77283 | 77311.8 | 0.011 | 0.607 |
chi-square = 0.607 with df = 2; p-value = 0.738 | ||||
bits 20 to 27 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 945 | 944.3 | 0.001 | 0.001 |
r=5 | 21771 | 21743.9 | 0.034 | 0.034 |
r=6 | 77284 | 77311.8 | 0.010 | 0.044 |
chi-square = 0.044 with df = 2; p-value = 0.978 | ||||
bits 21 to 28 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 925 | 944.3 | 0.394 | 0.394 |
r=5 | 21873 | 21743.9 | 0.767 | 1.161 |
r=6 | 77202 | 77311.8 | 0.156 | 1.317 |
chi-square = 1.317 with df = 2; p-value = 0.518 | ||||
bits 22 to 29 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 907 | 944.3 | 1.473 | 1.473 |
r=5 | 21809 | 21743.9 | 0.195 | 1.668 |
r=6 | 77284 | 77311.8 | 0.010 | 1.678 |
chi-square = 1.678 with df = 2; p-value = 0.432 | ||||
bits 23 to 30 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 908 | 944.3 | 1.395 | 1.395 |
r=5 | 21872 | 21743.9 | 0.755 | 2.150 |
r=6 | 77220 | 77311.8 | 0.109 | 2.259 |
chi-square = 2.259 with df = 2; p-value = 0.323 | ||||
bits 24 to 31 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 925 | 944.3 | 0.394 | 0.394 |
r=5 | 21826 | 21743.9 | 0.310 | 0.704 |
r=6 | 77249 | 77311.8 | 0.051 | 0.755 |
chi-square = 0.755 with df = 2; p-value = 0.685 | ||||
bits 25 to 32 | ||||
RANK | OBSERVED | EXPECTED | (O-E)^2/E | SUM |
r<=4 | 965 | 944.3 | 0.454 | 0.454 |
r=5 | 21766 | 21743.9 | 0.022 | 1.476 |
r=6 | 77269 | 77311.8 | 0.024 | 1.500 |
chi-square = 0.500 with df = 2; p-value = 0.779 | ||||
TEST SUMMARY, 25 tests on 100,000 random 6x8 matrices
These should be 25 uniform [0,1] random variates:
0.517980 | 0.774300 | 0.962248 | 0.585215 | 0.549416 |
0.406481 | 0.308039 | 0.847207 | 0.146943 | 0.300857 |
0.061708 | 0.080196 | 0.796531 | 0.211362 | 0.656888 |
0.558004 | 0.639071 | 0.387347 | 0.738372 | 0.978098 |
0.517651 | 0.432087 | 0.323180 | 0.685414 | 0.778832 |
BINARY RANK - 6X8 TEST : Combined p-values for 25 p-values observed :
Using KS Test | : 0.670517 |
---|---|
Using Fisher Method | : 0.812796 |
Using KS Test (Kuiper) | : 0.868848 |
Using KS Test (A-D) | : 0.774902 |
- OPSO means overlapping-pairs-sparse-occupancy.
- QQSO means overlapping-quadruples-sparse-occupancy.
- The DNA test considers an alphabet of 4 letters C,G,A,T, determined by two designated bits in the sequence of random integers being tested.
The OPSO test considers 2-letter words from an alphabet of 1024 letters. Each letter is determined by a specified ten bits from a 32-bit integer in the sequence to be tested. OPSO generates 2^21 (overlapping) 2-letter words (from 2^21+1 "keystrokes") and counts the number of missing words---that is 2-letter words which do not appear in the entire sequence.That count should be very close to normally distributed with |mean 141,909, sigma 290. Thus (missingwrds-141909)/290 should be a standard normal variable. The OPSO test takes 32 bits at a time from the test file and uses a designated set of ten consecutive bits. It then restarts the file for the next designated 10 bits, and so on.
OPSO test for file randomdata1.bin | |||
Bits used | No. missing words | z-score | p-value |
---|---|---|---|
23 to 32 | 141967 | 0.1989 | 0.421185 |
22 to 31 | 141488 | -1.4529 | 0.926869 |
21 to 30 | 141940 | 0.1058 | 0.457887 |
20 to 29 | 141591 | -1.0977 | 0.863830 |
19 to 28 | 141745 | -0.5667 | 0.714526 |
18 to 27 | 141496 | -1.4253 | 0.922961 |
17 to 26 | 141851 | -0.2011 | 0.579705 |
16 to 25 | 142102 | 0.6644 | 0.253224 |
15 to 24 | 142125 | 0.7437 | 0.228532 |
14 to 23 | 142086 | 0.6092 | 0.271194 |
13 to 22 | 142307 | 1.3713 | 0.085144 |
12 to 21 | 141357 | -1.9046 | 0.971583 |
11 to 20 | 141889 | -0.0701 | 0.527944 |
10 to 19 | 141788 | -0.4184 | 0.662165 |
9 to 18 | 141758 | -0.5218 | 0.699105 |
8 to 17 | 142185 | 0.9506 | 0.170907 |
7 to 16 | 142414 | 1.7402 | 0.040908 |
6 to 15 | 142517 | 2.0954 | 0.018067 |
5 to 14 | 141669 | -0.8287 | 0.796370 |
4 to 13 | 141862 | -0.1632 | 0.564822 |
3 to 12 | 141863 | -0.1598 | 0.563464 |
2 to 11 | 142143 | 0.8058 | 0.210191 |
1 to 10 | 142024 | 0.3954 | 0.346269 |
OQSO : Overlapping-Quadruples-Sparse-Occupancy
The test OQSO is similar, except that it considers 4-letter words from an alphabet of 32 letters, each letter determined by a designated string of 5 consecutive bits from the test file, elements of which are assumed 32-bit random integers. The mean number of missing words in a sequence of 2^21 four- letter words, (2^21+3 "keystrokes"), is again 141909, with sigma = 295. The mean is based on theory; sigma comes from extensive simulation.
OQSO test for file randomdata1.bin | |||
Bits used | No. missing words | z-score | p-value |
---|---|---|---|
28 to 32 | 142483 | 1.9446 | 0.025909 |
27 to 31 | 141798 | -0.3774 | 0.647058 |
26 to 30 | 141861 | -0.1638 | 0.565068 |
25 to 29 | 141917 | 0.0260 | 0.489629 |
24 to 28 | 142182 | 0.9243 | 0.177664 |
23 to 27 | 141641 | -0.9096 | 0.818481 |
22 to 26 | 142264 | 1.2023 | 0.114629 |
21 to 25 | 141939 | 0.1006 | 0.459943 |
20 to 24 | 141825 | -0.2859 | 0.612509 |
19 to 23 | 141816 | -0.3164 | 0.624140 |
18 to 22 | 142087 | 0.6023 | 0.273497 |
17 to 21 | 141667 | -0.8215 | 0.794307 |
16 to 20 | 141431 | -1.6215 | 0.947540 |
15 to 19 | 141692 | -0.7367 | 0.769351 |
14 to 18 | 141847 | -0.2113 | 0.583669 |
13 to 17 | 141694 | -0.7299 | 0.767284 |
12 to 16 | 142017 | 0.3650 | 0.357562 |
11 to 15 | 142171 | 0.8870 | 0.187535 |
10 to 14 | 141668 | -0.8181 | 0.793341 |
9 to 13 | 141521 | -1.3164 | 0.905976 |
8 to 12 | 142064 | 0.5243 | 0.300033 |
7 to 11 | 142014 | 0.3548 | 0.361365 |
6 to 10 | 142172 | 0.8904 | 0.186624 |
5 to 9 | 142083 | 0.5887 | 0.278027 |
4 to 8 | 141920 | 0.0362 | 0.485574 |
3 to 7 | 141753 | -0.5299 | 0.701920 |
2 to 6 | 141556 | -1.1977 | 0.884489 |
1 to 5 | 141910 | 0.0023 | 0.499094 |
The DNA test considers an alphabet of 4 letters: C,G,A,T,determined by two designated bits in the sequence of random integers being tested. It considers 10-letter words, so that as in OPSO and OQSO, there are 2^20 possible words, and the mean number of missing words from a string of 2^21 (over-lapping) 10-letter words (2^21+9 "keystrokes") is 141909. The standard deviation sigma=339 was determined as for OQSO by simulation. (Sigma for OPSO, 290, is the true value (to three places), not determined by simulation.
DNA test for file randomdata1.bin | |||
Bits used | No. missing words | z-score | p-value |
---|---|---|---|
31 to 32 | 142048 | 0.4091 | 0.341249 |
30 to 31 | 141348 | -1.6558 | 0.951123 |
29 to 30 | 141738 | -0.5054 | 0.693360 |
28 to 29 | 142083 | 0.5123 | 0.304220 |
27 to 28 | 141177 | -2.1603 | 0.984624 |
26 to 27 | 141214 | -2.0511 | 0.979872 |
25 to 26 | 141677 | -0.6853 | 0.753435 |
24 to 25 | 141692 | -0.6411 | 0.739268 |
23 to 24 | 141494 | -1.2252 | 0.889743 |
22 to 23 | 142266 | 1.0521 | 0.146371 |
21 to 22 | 142084 | 0.5153 | 0.303189 |
20 to 21 | 141670 | -0.7060 | 0.759902 |
19 to 20 | 142354 | 1.3117 | 0.094809 |
18 to 19 | 141690 | -0.6470 | 0.741181 |
17 to 18 | 141446 | -1.3668 | 0.914149 |
16 to 17 | 141935 | 0.0757 | 0.469820 |
15 to 16 | 142174 | 0.7807 | 0.217478 |
14 to 15 | 141743 | -0.4906 | 0.688163 |
13 to 14 | 142229 | 0.9430 | 0.172846 |
12 to 13 | 141838 | -0.2104 | 0.583327 |
11 to 12 | 142193 | 0.8368 | 0.201357 |
10 to 11 | 141527 | -1.1278 | 0.870301 |
9 to 10 | 142368 | 1.3530 | 0.088026 |
8 to 9 | 141585 | -0.9567 | 0.830647 |
7 to 8 | 142191 | 0.8309 | 0.203019 |
6 to 7 | 142404 | 1.4592 | 0.072255 |
5 to 6 | 142082 | 0.5094 | 0.305253 |
4 to 5 | 141752 | -0.4641 | 0.678712 |
3 to 4 | 141770 | -0.4110 | 0.659465 |
2 to 3 | 142047 | 0.4061 | 0.342332 |
1 to 2 | 142089 | 0.5300 | 0.298056 |
Consider the file under test as a stream of bytes (fouper 32 bit integer). Each byte can contain from 0 to 8 1''s, with probabilities 1,8,28,56,70,56,28,8,1 over 256. Now let the stream of bytes provide a string of overlapping 5-letter words, each "letter" taking values A,B,C,D,E. The letters are determined by the number of 1''s in a byte: 0,1,or 2 yield A,3 yields B, 4 yields C, 5 yields D and 6,7 or 8 yield E. Thus we have a monkey at a typewriter hitting five keys with various probabilities (37,56,70,56,37 over 256). There are 5^5 possible 5-letter words, and from a string of 256,000 (over-lapping) 5-letter words, counts are made on the frequencies for each word. The quadratic form in the weak inverse of the covariance matrix of the cell counts provides a chisquare test: Q5-Q4, the difference of the naive Pearson sums of (OBS-EXP)^2/EXP on counts for 5- and 4-letter cell counts.
Test result for the byte stream from randomdata2.bin | |||
(Degrees of freedom: 5^4-5^3=2500; sample size: 2560000) | |||
chisquare | z-score | p-value | |
---|---|---|---|
2483.05 | -0.240 | 0.594719 |
This is the COUNT-THE-1''s TEST for specific bytes.
Consider the file under test as a stream of 32-bit integers.From each integer, a specific byte is chosen , say the left- most: bits 1 to 8. Each byte can contain from 0 to 8 1''s, with probabilitie 1,8,28,56,70,56,28,8,1 over 256. Now let the specified bytes from successive integers provide a string of (overlapping) 5-letter words, each "letter" taking values A,B,C,D,E. The letters are determined by the number of 1''s,in that byte: 0,1,or 2 ---> A, 3 ---> B, 4 ---> C, 5 ---> D, and 6,7 or 8 ---> E. Thus we have a monkey at a typewriter hitting five keys with with various probabilities: 37,56,70, 56,37 over 256. There are 5^5 possible 5-letter words, and from a string of 256,000 (overlapping) 5-letter words, counts are made on the frequencies for each word. The quadratic form in the weak inverse of the covariance matrix of the cell counts provides a chisquare test: Q5-Q4, the difference of the naive Pearson sums of (OBS-EXP)^2/EXP on counts for 5- letter and 4-letter cell counts.
Test results for specific bytes from randomdata2.bin | |||
(Degrees of freedom: 5^4-5^3=2500; sample size: 256000) | |||
bits used | chisquare | z-score | p-value |
---|---|---|---|
1 to 8 | 2589.50 | 1.266 | 0.102809 |
2 to 9 | 2534.88 | 0.493 | 0.310917 |
3 to 10 | 2469.75 | -0.428 | 0.665598 |
4 to 11 | 2583.88 | 1.186 | 0.117758 |
5 to 12 | 2446.52 | -0.756 | 0.775269 |
6 to 13 | 2495.18 | -0.068 | 0.527153 |
7 to 14 | 2370.69 | -1.829 | 0.966282 |
8 to 15 | 2477.89 | -0.313 | 0.622729 |
9 to 16 | 2493.88 | -0.087 | 0.534511 |
10 to 17 | 2445.27 | -0.774 | 0.780531 |
11 to 18 | 2629.66 | 1.834 | 0.033352 |
12 to 19 | 2475.12 | -0.352 | 0.637530 |
13 to 20 | 2453.89 | -0.652 | 0.742831 |
14 to 21 | 2489.39 | -0.150 | 0.559651 |
15 to 22 | 2528.26 | 0.400 | 0.344707 |
16 to 23 | 2561.52 | 0.870 | 0.192138 |
17 to 24 | 2467.54 | -0.459 | 0.676892 |
18 to 25 | 2420.62 | -1.123 | 0.869195 |
19 to 26 | 2549.42 | 0.699 | 0.242323 |
20 to 27 | 2379.35 | -1.706 | 0.956018 |
21 to 28 | 2508.35 | 0.118 | 0.452988 |
22 to 29 | 2575.29 | 1.065 | 0.143477 |
23 to 30 | 2526.18 | 0.370 | 0.355578 |
24 to 31 | 2391.16 | -1.539 | 0.938134 |
25 to 32 | 2421.93 | -1.104 | 0.865219 |
THIS IS A PARKING LOT TEST
In a square of side 100, randomly "park" a car---a circle of radius 1. Then try to park a 2nd, a 3rd, and so on, each time parking "by ear". That is, if an attempt to park a car causes a crash with one already parked, try again at a new random location. (To avoid path problems, consider parking helicopters rather than cars.) Each attempt leads to either a crash or a success, the latter followed by an increment to the list of cars already parked. If we plot n: the number of attempts, versus k: the number successfully parked, we get a curve that should be similar to those provided by a perfect random number generator. Theory for the behavior of such a random curve seems beyond reach, and as graphics displays are not available for this battery of tests, a simple characterization of the random experiment is used: k, the number of cars successfully parked after n=12,000 attempts. Simulation shows that k should average 3523 with sigma 21.9 and is very close to normally distributed. Thus (k-3523)/21.9 should be a standard normal variable, which, converted to a uniform variable, provides input to a KSTEST based on a sample of 10.
CDPARK: result of 10 tests on file randomdata2.bin | |||
(Of 12000 tries, the average no. of successes should be 3523.0 with sigma=21.9) | |||
No. succeses | z-score | p-value | |
---|---|---|---|
3517 | -0.2740 | 0.607947 | |
3546 | 1.0502 | 0.146807 | |
3505 | -0.8219 | 0.794438 | |
3543 | 0.9132 | 0.180558 | |
3534 | 0.5023 | 0.307734 | |
3509 | -0.6393 | 0.738676 | |
3519 | -0.1826 | 0.572463 | |
3549 | 1.1872 | 0.117571 | |
3527 | 0.1826 | 0.427537 | |
3547 | 1.0959 | 0.136563 | |
Square side=100, avg. no. parked=3529.60 sample std.=15.67 |
PARKING LOT TEST : Combined p-values for 10 p-values observed :
Using KS Test | : 0.997557 |
---|---|
Using Fisher Method | : 0.300859 |
Using KS Test (Kuiper) | : 0.976896 |
Using KS Test (A-D) | : 0.412500 |
THE MINIMUM DISTANCE TEST
It does this 100 times: choose n=8000 random points in a square of side 10000. Find d, the minimum distance between the (n^2-n)/2 pairs of points. If the points are truly independent uniform, then d^2, the square of the minimum distance|should be (very close to) exponentially distributed with mean .995 . Thus 1-exp(-d^2/.995) should be uniform on [0,1) and a KSTEST on the resulting 100 values serves as a test of uniformity for random points in the square. Test numbers=0 mod 5 are printed but the KSTEST is based on the full set of 100 random choices of 8000 points in the 10000x10000 square.
This is the MINIMUM DISTANCE test for file randomdata2.bin | |||
Sample no. | d^2 | mean | equiv uni |
---|---|---|---|
5 | 0.6756 | 705.3235 | 0.492857 |
10 | 0.6842 | 353.4190 | 0.497225 |
15 | 1.6118 | 235.8947 | 0.802079 |
20 | 0.2914 | 177.0901 | 0.253868 |
25 | 0.0559 | 141.7478 | 0.054656 |
30 | 0.6059 | 118.4439 | 0.456066 |
35 | 0.1134 | 101.6067 | 0.107730 |
40 | 0.8101 | 89.1495 | 0.556990 |
45 | 0.0171 | 79.3203 | 0.016990 |
50 | 3.0041 | 71.5410 | 0.951159 |
55 | 2.1536 | 65.1346 | 0.885179 |
60 | 0.8588 | 59.7980 | 0.578149 |
65 | 0.2024 | 55.2447 | 0.184091 |
70 | 4.5711 | 51.3870 | 0.989888 |
75 | 0.4473 | 48.0007 | 0.362096 |
80 | 0.3222 | 45.0510 | 0.276632 |
85 | 0.3440 | 42.4331 | 0.292290 |
90 | 0.5689 | 40.1105 | 0.435449 |
95 | 1.2712 | 38.0355 | 0.721304 |
100 | 0.0943 | 36.1519 | 0.090448 |
MINIMUM DISTANCE TEST : Combined p-values for 100 p-values observed :
Using KS Test | : 0.964865 |
---|---|
Using Fisher Method | : 0.524719 |
Using KS Test (Kuiper) | : 0.881248 |
Using KS Test (A-D) | : 0.609454 |
THE 3DSPHERES TEST
Choose 4000 random points in a cube of edge 1000. At each point, center a sphere large enough to reach the next closest point. Then the volume of the smallest such sphere is (very close to) exponentially distributed with mean 120pi/3. Thus the radius cubed is exponential with mean 30. (The mean is obtained by extensive simulation). The 3DSPHERES test generates 4000 such spheres 20 times. Each min radius cubed leads to a uniform variable by means of 1-exp(-r^3/30.), then a KSTEST is done on the 20 p-values.
The 3DSPHERES test for file randomdata2.bin | |||
Sample no. | r^3 | equiv uni | |
---|---|---|---|
1 | 9.069 | 0.260877 | |
2 | 6.149 | 0.185313 | |
3 | 40.016 | 0.736545 | |
4 | 9.024 | 0.259779 | |
5 | 18.867 | 0.466816 | |
6 | 20.900 | 0.501759 | |
7 | 9.280 | 0.266070 | |
8 | 44.553 | 0.773519 | |
9 | 32.957 | 0.666657 | |
10 | 6.858 | 0.204355 | |
11 | 9.055 | 0.260534 | |
12 | 31.569 | 0.650862 | |
13 | 2.695 | 0.085902 | |
14 | 85.363 | 0.941890 | |
15 | 6.726 | 0.200841 | |
16 | 77.803 | 0.925238 | |
17 | 4.736 | 0.146036 | |
18 | 1.384 | 0.045088 | |
19 | 45.957 | 0.783873 | |
20 | 102.052 | 0.966685 |
3D SPHERES TEST : Combined p-values for 20 p-values observed :
Using KS Test | : 0.466600 |
---|---|
Using Fisher Method | : 0.385831 |
Using KS Test (Kuiper) | : 0.515314 |
Using KS Test (A-D) | : 0.657893 |
This is the SQUEEZE test
Random integers are floated to get uniforms on [0,1). Starting with k=2^31=2147483647, the test finds j, the number of iterations necessary to reduce k to 1, using the reduction | k=ceiling(k*U), with U provided by floating integers from the file being tested. Such j''s are found 100,000 times, then counts for the number of times j was <=6,7,...,47,>=48 are used to provide a chi-square test for cell frequencies.
RESULTS OF SQUEEZE TEST FOR randomdata2.bin | |||||
Table of standardized frequency counts (obs-exp)^2/exp for j=(1,..,6), 7,...,47,(48,...) | |||||
-0.1 | -0.7 | 0.6 | -0.8 | 0.4 | -0.1 |
3.1 | -1.2 | 2.7 | 0.2 | -1.2 | 0.9 |
0.6 | -1.0 | 1.7 | -1.2 | -0.7 | 0.4 |
0.0 | -0.7 | -0.4 | -0.1 | 1.0 | 1.2 |
-1.5 | -0.2 | -0.0 | -0.5 | 0.2 | -1.3 |
0.3 | -1.1 | -2.3 | 1.2 | 0.8 | -0.8 |
1.0 | 0.2 | -0.8 | -0.7 | -0.6 | 1.0 |
-0.1 | |||||
Chi-square with 42 degrees of freedom:48.957432 | |||||
z-score=0.759118, p-value=0.213974 |
The OVERLAPPING SUMS test
Integers are floated to get a sequence U(1),U(2),... of uniform [0,1) variables. Then overlapping sums, S(1) = U(1) +...+ U(100), S2=U(2)+...+U(101),... are formed.
The S"s are virtually normal with a certain covariance matrix. A linear transformation of the S"s converts them to a sequence of independent standard normals, which are converted to uniform variables for a KSTEST.
Results of the OSUM test for randomdata2.bin | |||
Test no. | p-value | ||
---|---|---|---|
1 | 0.267035 | ||
2 | 0.270890 | ||
3 | 0.056512 | ||
4 | 0.965257 | ||
5 | 0.072476 | ||
6 | 0.430359 | ||
7 | 0.145759 | ||
8 | 0.474969 | ||
9 | 0.056656 | ||
10 | 0.338536 |
OVERLAPPING SUM TEST : Combined p-values for 10 p-values observed :
Using KS Test | : 0.195422 |
---|---|
Using Fisher Method | : 0.051928 |
Using KS Test (Kuiper) | : 0.360573 |
Using KS Test (A-D) | : 0.039317 |
This is the RUNS test. It counts runs up, and runs down,in a sequence of uniform [0,1) variables, obtained by floating the 32-bit integers in the specified file. This example shows how runs are counted: .123,.357,.789,.425,.224,.416,.95 contains an up-run of length 3, a down-run of length 2 and an up-run of (at least) 2, depending on the next values. The covariance matrices for the runs-up and runs-down are well known, leading to chisquare tests for quadratic forms in the weak inverses of the covariance matrices. Runs are counted for sequences of length 10,000. This is done ten times. Then another three sets of ten.
The RUNS test for file randomdata2.bin | |||
(Up and down runs in a sequence of 10000 numbers) | |||
Set 1 | runs up; ks test for 10 p's: 0.571798 | runs down; ks test for 10 p's: 0.182346 | |
Set 2 | runs up; ks test for 10 p's: 0.203912 | runs down; ks test for 10 p's: 0.464078 |
The CRAPS TEST. It plays 200,000 games of craps, counts the number of wins and the number of throws necessary to end each game. The number of wins should be (very close to) a normal with mean 200000p and variance 200000p(1-p), and p=244/495. Throws necessary to complete the game can vary from 1 to infinity, but counts for all>21 are lumped with 21.A chi-square test is made on the no.-of-throws cell counts. Each 32-bit integer from the test file provides the value for the throw of a die, by floating to [0,1), multiplying by 6 and taking 1 plus the integer part of the result.
RESULTS OF CRAPS TEST against Random data
No. of wins : Observed Expected
98532 : 98585.858586
z-score=-0.241, pvalue=0.59518
All Tests : Combined p-value of 313 individual p-values :
Using KS Test | : 0.092932 - PASS (p value >= 0.05) |
---|---|
Using Fisher Method | : 0.127742 - PASS (p value >= 0.05) |
Using KS Test (Kuiper) | : 0.143287 - PASS (p value >= 0.05) |
Using KS Test (A-D) | : 0.100864 - PASS (p value >= 0.05) |