"Pure" random is in the eye of the beholder. Any process that produces a new number that cannot be predicted by knowing all the numbers before it meets my definition of random.
Imagine that I'm a random number generator. I will shuffle numbers between 0 to 99 and give them out to you in the order I decide. There is no way you can predict the next number for sure. After giving you all of my 100 random numbers I will choose a new set of numbers - from 100 to 199. I will shuffle them and give them to you in a random order. There is no way you can predict the next number for sure.. etc.
Does that satisfy your need for a good RNG? It does exactly what you are looking for. It produces a new number which you cannot predict (by knowing all the numbers before it). And the period is infinite! Am I a perfect random number generator?
The result is *sufficiently* random that the next number in the sequence can't be predicted by the observer.
Imagine I have a service that gives me information about the world coordinates. I give them a coordinate and they tell me if it hits land or water on the earth. Now, I want to know the percentage of dry land relative to the surface of the earth.
So, my strategy is to send
uniform random coordinates to the service I have available. I count the number of "land" coordinates and compare that number to the number of coordinates I have generated.
If the RNG I have used is good enough to produce millions and millions of uniformly distributed coordinates around the globe, I should have a very good answer after millions and millions of random coordinates sent. I really don't want the random numbers clustering around atlantic.. or missing the river Kwai. The millions and millions and millions of points really have to be uniformly distributed around the globe.
Can you say that your Black RNG is *sufficiently* random to give me a good results in a situation like that? Can you say that your RNG is nothing like RANDU:
RANDU - Wikipedia, the free encyclopedia
MisterT- To predict the next number generated you would need to know the entire contents of the 1Mbit cache, and the postion in the cache, and the state of the RNG engine. It is not possible for the observer to know those things based on previously generated numbers, so to predict means you must solve for every possible solution of cache content and cache index and engine values, and that brings you back to equal odds, ie your chance of guessing.
Some RNGs have trouble recovering after generating a small number. I'm not saying that this is the case with Black RNG, but it is a flaw with some RNGs. If some poor RNG produces a small number, I can predict that couple of next numbers will also be small. Are you sure that Black RNG does not have this kind of flaws?
It doesn't take long to code my RNG engine up in C, feel free to play with it and run the data through your tests. Or use it in your commercial product, I don't care. It won't do the really fast megabits/sec RN generation you asked for in your other thread but it is sufficiently random with enough passes, if you need high quality RNG generated solely by algorithm without resorting to hardware tricks.
I have a challenge for you. Imagine that You are a Random Number Generator. Write down 100 numbers purely out of your imagination. Then choose one, or more, of your favourite random number generators and generate 9 more sets of 100 random numbers. Anyone can take this challenge! I am confident enough to beat this challenge most of the time (not always, there is always a chance of failure).
There is no way I can predict the numbers you choose. But, I'll bet you that I can recognize from all the 10 sets of 100 random numbers the one set that is generated by your imagination and the ones that are generated by computer.
The reason I'm giving you (Mr RB) a hard time with this is that there is a need for a really good random number generators. I want to know if Black RNG is really as good as the hype you are putting out.