Have you ever wondered how true random number generators work?

AI Thread Summary
Mathematica 7 generates random numbers using algorithms that produce pseudorandom numbers, which are not truly random but follow specific processes. Pseudorandom number generation is widely used, sufficient for most applications, including Monte Carlo simulations, where reproducibility is essential. However, for critical applications like lotteries or cryptography, true random numbers may be necessary. Modern Intel chips feature hardware random number generators, but their effectiveness varies, and they are not universally implemented across all models. True random number generators, such as those based on quantum mechanics, offer higher security and are utilized in applications like quantum key distribution, exemplified by their use in Swiss federal elections.
Winzer
Messages
597
Reaction score
0
Take for instance when you ask Mathematica 7 to generate a random number. This number can't be really random. It has to adhere to some process for picking that specific number. Does anyone know anything about the algorithm/process to this?
 
Technology news on Phys.org
There are a variety of well-studied techniques for this. Google "pseudorandom number generation" or "pseudorandom number generator".

I believe that modern Intel chips have an instruction or somesuch that actually produces true random numbers (it uses two interfering oscillators plugged into a voltage meter, or something) but I do not know whether any programming libraries actually tap into this.
 
Why would they? Pseudorandom number generation is good enough for 99% of applications.
 
csprof2000 said:
Why would they? Pseudorandom number generation is good enough for 99% of applications.

Pseudorandom is used in 995 of applications, whether they are good enough or not depends.
If you are using them to hand out money (lotteries) or do crypto that you care about then you might need real (hardware) random numbers.
The via C3 (used in a lot of low power notebooks) has homework random number feature so do a bunch of specialist IBM and Intel chips, but AFAIK Intel's regular desktop chips don't. HW random number generators aren't guaranteed to produce perfectly random numbers either - you still have to be careful in the actual implementation.

Pseudorandom is still very useful for things like monte-carlo simulations, you don't care if the same stream of numbers is used everytime (in fact that is vital for testing) but you need a set of numbers with a certain known distribution.
 
You can buy a true random number generator based on a pure quantum mechanical system, based states of single photons.

http://www.idquantique.com/products/quantis.htm

(This is not spam, I have no affiliation with that company).

They also make a true quantum key-distribution system, which let's you set up a quantum channel (an optical fiber which carries single photons) and carry out what is, theoretically, a perfectly secure communication. They use this in the Swiss federal elections.
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top