Random Numbers and Computers
1. Intro There are several scenarios in computer programming where we find ourselves in the need of random output; be it a word processor which displays a random quote from a set of quotes each time it starts, or a videogame in which a certain figure has to perform a task selected at random from a set of tasks. Random sequences are also required in encryption algorithms, and that is where it gets serious. In case a 'random sequence' used in encryption is not truly random and its terms are related to each other and are predictable, a security breach is likely to occur. The solution appears simple: Make a reliable algorithm that produces random numbers. But wait! The problem with random numbers is a different one and is not as simple as it appears. A computer is a deterministic machine. It performs tasks based on instructions provided to it. The state change of each and every capacitor in our computer's memory is governed by the instructions given at a higher level (Th...