More Random Randomness
jfleck writes "According to the American Institute of Physics' Physics News Update, Kent State physicist James Gleeson has developed a technique for generating numbers approaching true randomness. His trick is to shine light through a liquid crystal, taking advantage of its turbulence and avoiding the inevitable risk of predictability in deterministic random number number algorithms."
Didn't the Commodore have a 'true random number generator' that used white noise from the sound card?
"Ignorance more frequently begets confidence than does knowledge"
- Charles Darwin
Well, designing an algorithm for true randomness is impossible. An algorithm, by definition, must be deterministic, which means that if it doesn't take external input, it's not truly random (because either it will generate the same numbers over and over again or a series of pseudo-random numbers). If it takes external input, on the other hand, this must come from somewhere. You can't take another algorithm (see recursion), so it has to be something mechanical. QED.
Or ICMP, actually. Some time ago when I needed a relatively small amount (a megabyte or so) of random numbers I thought to check how random the time between sending and receiving a ICMP echo request was. Liking to tinker with this kind of things I wrote a quick-and-dirty program to collect the data.
Turned out that if the destination host was distant enough (at least a couple of hops) and only a few most insignificant bits of the number of microseconds elapsed between the request and reply was used, the method would yield a fairly random sequence of bits. In fact, I tested the randomness of the sequence with a couple different methods and got positive results from all of them.
Of course, the technique is completely impractical for generating any significant amount of random numbers, and there probably are ways to embed order into the results if you are part of the network used to relay the requests, but nonetheless I successfully used the sequence in a (one-time) commercial application.
The primary problem with this method is that it is implemented in hardware, which produces quite a few problems.
1) No known seed. One of the primary characteristics of a good random number generator is that the results are reproduceable. If I want to run the same experiment twice during some sort of simulation, I need to be able to generate the same stream of random numbers twice. Second it is always useful to have a random number generator with a [very large] full period, this obviously is not periodic, which makes it hard to determine if the system which is using the variate generation is chaotic or stable.
2) Hardware random number generators are often difficult to port to all systems, and to interface with existing programming languages. A good solid pseudo-random number generator (like a Lehmer one) is based on a mathematical algorithm which is reproducable in just about any environment.
There are many other problems with this approach as well, too numerous to name. In general hardware random number generators are a bad idea.
Randomness is a very complex subject with lots of odd facets. The article cited at the top of this topic may be a good way to generate more or less "true" random sequences (17 is, of course, the Only Random Number).
Random sequences based on quantum (or similar effects) are useful primarily in cryptography where "true" randomness is important. Probably in video gambling devices as well (is there any good way to tell how they generate randomness).
Random sequences based on deterministic generators are useful for lots of other things: simulation, pysol (including freecell), and a number of algorithms. These are not useless by any means and while they need to satisfy some fairly stringent statistical properties, they can be generated by well defined algorithms starting with seeds which may be reused.
Randomness, its uses, implications, theory and even philosophy is a massive subject - probably more than a single lifetime's worth.
In fact, its hard to even describe what randomness actually is and how you can tell is something is random.
For starters try Knuth Chapter 3, go on to Greg Chaitin's work, and cryptography. Then continue with the appropriate bits and pieces of quantum physics and then go back and fill in all the holes. (Don't neglect using cryptographic algorithms to generate random numbers - as well as their uses the other way around, the digits of Pi, the Riemann Zeta function and, well, a lot else) You'll have lots of fun and push your brain quite a bit.
why, from SETI research signal, of course.
You know, true randomness does not happen, in theory. If we had perfect knowledge of all subatomic particles since the universe began then we would be able to predict anything. So, in theory, everything, including randomness, can be fully determined. Yet the likelihood of this happening in our lifetime is slim to none.
Likewise, can you tell, at any one time, how many hits the word "baka" is going to return on the internet in a google search? (by the way, about 363,000 as of 9/19/2002)
What are the chances that someone, anyone, could replicate the same results exactly in 3 months time? Slim to none.
I don't think anyone, ever, could pull that off, not even google.
So while, yes, in theory it is possible, the odds are slim to none.
"Piter, too, is dead."