Random Numbers and Random Number Generators
What is a Random Number resp What is a Random Number Generator.
What are examples of sequences of Random Numbers and which are not.
What is the best way to test if a sequence of numbers can be called a sequence of Random numbers
Is it possible to generate a random numbers by means of a computer program ?
The purpose of this discussion are the two articles Guaranteed Randomness & Random numbers certified by Bell's theorem. in Nature of 15 April 2010. In both articles the problems with true random numbers are discussed.
For a critical evaluation of a document which uses RND's and PRND's (pseudo RND's) study this: Feeling the Future: Experimental Evidence for
Anomalous Retroactive Influences on Cognition and Affect
Answer question 1
A Random Number is a number generated by a process which generates random numbers. This is called a random number generator.
A random number generator always generates numbers between two ranges. As such you can have:
The definition of a random number generator is:
- a sequence a random numbers between 0 and 1. For example 011001110101001101010
- a sequence of random numbers between 0 and 9. For example 25945718340328
- a sequence of random numbers of of each 5 digits. etc For example 12897 54376 54892 36004
A random number generator is a process which creates number between a certain range in such a way that each next number is completely independent of the previous way.
This translates in the following rule: The chance of finding any value should be equal.
Or: The correlation between any two numbers should be 0 (No correlation)
Answer question 2
- Is the following sequence of 20 numbers random ?: 00000000000000000000
The chance of finding 20 zero numbers in a row is 2^-20. This number is very small and the sequence is non random.
- Is the following sequence of two numbers of each 3 bits random ?: 000 000
The chance of finding two equal numbers one after an other is 2^-8. This is high. In fact this sequence is too small to decide if it is generated by a true random process.
- Does the Visual Basic function RND generate true random numbers ?
No. The RND function is cyclic. After 2^24 calls it generates the same number.
Answer question 3
The best way to test if a process generates random numbers is described in the NIST article: A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications Special Publication 800-22 Revision 1a
This document describes 15 tests in order to declare a sequence as random or not random.
Answer question 4
IMO the answer is Yes.
I have implemented two process by means of an EXCEL spread sheet to create two random processes.
In order to read a more detailed description of both processes go to: Excel program: Onoff.xls Description and operation .
Part of the article is a link to get a copy of the EXCEL program. As part of the program all the 15 NIST tests are implemented in order to decide if the processes are random or not.
- The first process is an ON OFF process. This program calculates each 15.6 millisecond an increase or decrease in process value in combination with the Visual Basic RND function. The direction is decided by a dead band. In its free time the RND function is continuous called in combination with performing other functions on the PC. This makes the outcome of the program unpredictable or random. It takes one second to calculate one bit.
- The second process is must faster. Each 15.6 ms a bit is calculated in combination with the RND function and by performing the other tasks on the PC.
Created: 3 November 2010
Back to my home page Contents of This Document