So currently right now computers generate ‘pseudo-random numbers’ using large prime numbers and etc…and one night a friend of mine suggested why not use physics modeling to roll 3D dice. Though he didn’t say that it would result in true numbers, it gets me wondering - would we be able to get true random numbers this way?
From the way I look at it, let say we hang three 3D dice in the simulation space, fix the gravity, friction of the table surface, material of the dice and other constants - would the dice show the same numbers all the time? If it does, then is the simulation accurate because in the real world, if you hold 3 dice, say between your thumb and your first finger, and you slide off your thumb, the dice each time would fall differently and you would get a different number.
Another way to look at it is that the physics simulation uses pseudo-random numbers for its simulation, so the outcome of rolling three virtual dice is still…pseudo-random?
This is the only reasonable approach. There’s a very basic result in information theory that says that you can’t increase the randomness in a quantity by processing it deterministically (or at least that’s a reasonable nontechnical explanation of it). Since there’s no randomness in your pseudorandom numbers, there’s no way to make them random in software.
Back in my undergrad days I did a bunch of chaotic physical system modeling (leaky water wheels, circuits based on the Lorenz equations, etc…) and the one thing I learned is that models of chaotic systems are completely deterministic. If you start with the same initial conditions (die orientation and velocity) you will always get the same answer. If you choose a pseudo random orientation and velocity, you get a pseudo random answer.
A rendered die will roll the same way every time given the same input initial speed, orientation, and direction. Making those pseudo-random simply makes the outcome pseudo-random. Mathematically it’s simpler to just munge the bits more. It requires less computation.
For most purposes, you don’t need a guaranteed random value, but quite often you do need to be able to create a large set of randomish data. Creating a pseudo-random sequence generator where the numbers in the sequence are related to each other through more obtuse formulas increases the unpredictability for the lay-user but is more computationally expensive. If you need to create a large set of randomish data, using a computationally expensive generator is going to kill your response time. And so, most off-the-shelf generators don’t do that.
The only way to create true randomness is to use a random input. Temperature (as monitored via a very accurate sensor) is a common one.
The variation in the real world is due to variances (perhaps undetectable by you) in the positions of your fingers, at least. How will you simulate these variances in the simulation? Presumably by means of a random number generator. How to generate these numbers?
Electrical noise generated by the junction in zener diodes is a common way of generating random numbers but it requires a specific piece of hardware which most computers do not need.
PGP tells you to move your mouse around and generates a random seed that way.
In many cases you want not a random but a pseudorandom number generator where a given seed results in the same series of numbers. (Like remote car dor openers.)
Actually large prime numbers (for cryptographic purposes) are found using random number generators. Prime numbers are are only used for mundane purposes in RNGs such as moduli and large ones (thousands of bits) are not needed.
There are several results in “amplification” of random numbers, i.e., start with a smallish random number, grind it thru an algorithm and you get a large pseudo-random sequence. Not exactly random of course but “good enough” from cryptographic purposes.
But the idea of using a dice simulator to generate random numbers is, well, not exactly the best way to do things. To say the least.
If you really need true random numbers, you should do it in hardware. (The PGP move-your-mouse method that sailor mentioned does work, but doesn’t give many bits for the time you spend.) The LavaRnd site offers software to get true random numbers from a webcam in a dark box. The camera always returns some noise, even in the dark, and the software hashes that up to destroy any order there may be.
I realize that at times it’s hard to avoid repeating what’s been said before, but if your post is one of the first ten replies, you should at least come up with something that hasn’t already been addressed.
It seems obvious that any truly random process is going to involve quantum indeterminacy since that is the only non-deterministic process we know of. I have read somewhere of a site that uses a lava lamp. It ought to be possible to use radioactive decay.
From what I’ve read of QM, if I haven’t misunderstood it, it’s possible that the universe actually is deterministic — though if it is it would have to be non-local.
Which neatly ties in with our universe being just a simulation in some kid’s computer.
Indeed, the Universe as a computer simulation is one viable model of quantum mechanics (and other physics) as deterministic based on nonlocal hidden variables.
I have speculated about this in my head, at some length (embarrassingly), in an ungrounded fashion. Is a claim like this actually taken seriously by some mathematician/physicist or other?
I said “viable”, not “likely”. As in, there exists no evidence contrary to such a model, and it is consistent with all known observations. So far as I know, though, no serious researcher considers it likely unless the researcher has chemical assistance in considering it.
There are, however, other nonlocal hidden variable models which are taken at least semi-seriously.
Sorry, I should have been more clear. By “claim” I meant just the claim that it’s a viable model, and by “take seriously” I just meant go through whatever it takes to figure out what such a model would amount to in mathematical and empirical terms and check that against the equations and observations.