Wednesday 4 July 2007

A Random Post

The other day, while GK, Shortage, Ram and I were grubbing at Tiffanys, the issue of how computers generate only pseudo-random numbers came up.
Is there anyway to generate truly random numbers?
Asked GK.
Yes. Radioactivity and Evolution are truly random processes.
Said Ram.
Oh.
Said I.
Lets leave before it begins to rain.
Said Shortage.

It is much harder than what it seems to get a computer to do something random. For it to do anything at all, it has to be fed with instructions, which is deterministic by definition, making all random numbers generated from computer algorithms only pseudo-random. The numbers are part of a repeating sequence.

Radioactive decay is a process which can safely be called genuinely random. There is no way one can predict when an atom will decay. In large enough numbers, though, it becomes more predictable and notions such as half life make sense. Microscale randomness, if I may? Fermilab has an excellent internet service, HotBits, which generates random numbers for you, by exploiting this fact.

The process of evolution on the other hand is not truly random. The backbone of evolution is natural selection, and the 'selection' throws all ideas of randomness out the window. Its only the genetic mutations which are genuinely random. In other words, me being human at birth was very predictable, but could I turn out to be John Cleese? There's no way to tell. Microscale randomness again!

So, is there anyway to have genuine 'macroscopic' randomness? Why, just roll a die.

I recently read that atmospheric noise produced by thunderstorms can generate random numbers. Which means, one can sit at home, build a radio, pick up the noise and have genuine random numbers.

So stick that in your Geiger Counter, Fermilab!