How do mechanical slot machines provide random results?

Just got back from a resort with a casino so this topic piqued my interest. I read up on this topic in How Stuff Works, which described modern slots as computer controlled, using random number generators. Having a programming background, I know that software generates only pseudo-random numbers, not true random numbers, but that’s not my point.

How did mechanical slot machines provide random results before they became computerized?

Before computerization the wheels were turned by the action of pulling the lever on the side of the machine. I’m assuming that the strength of the pull, the amount of friction involved and several other factors contributed to the final position of the wheels. I suppose you could argue that it might be theoretically possible to attempt to control the outcome by varying the force exerted on the handle, but I think that would be much harder than, say, infuencing the outcome of a coin toss.

Try this link:

(As always, I take howstuffworks with a grain of salt, but it’s generally useful for background info.)

Seems like the general principle is not unlike a roulette wheel… there are spinning and stopping mechanisms, each of which is designed to not be reliable enough for their effect to be predicted. Therefore, what section each slot wheel will stop at is presumed to be more or less random.

Hope that helps.

They didn’t: they provided unpredictable results, by being too complicated, too isolated from the human input and, at the same time, too human-dependent to be predicted or predictably influenced. But in the strictly mechanistic sense, they weren’t random. It’s like playing Wheel of Fortune with three hidden wheels.

What does ‘random’ mean in the mechanistic sense?? Is flipping a coin or throwing a die random in that sense? Shuffling cards?? The roulette wheel I mentioned??

How about, to throw in another game show example… the ‘big wheel’ from price is right?

I remember reading, possibly in a Martin Gardner column, that before pseudorandom generators had been worked out well enough, that computers were loaded with ‘files’ full of random digits that had been derived from repeatedly throwing icosahedral dice or dropping a dart onto a target with ten equal areas. :] Computer functions are pseudorandom, compared to ‘truly random’ mechanical effects. But when does a mechanical effect become truly random??

For a mechanical ‘random’ number generator, I think a pendulum slightly effected by the pull from the gambler would be quite effective.

The pendulum could speed up or slow down the rest of the works.

Non-microprocessor-based slot machines of the type you can still occasionally find today use a “variator”.

http://catlin.casinocitytimes.com/articles/1243.html

Most mechanical-reel machines you see in the casinos nowadays, however, are microprocessor-based and may use identical algorithms for pseudo-random number generation as their video-slot siblings.

-AmbushBug, professional slot machine programmer

AmbushBug, how common is it for computerized machines to salt their pseudorandom algorithms with environmental noise like the timings between keypresses and other external data? In PC crypto this is pretty common (it’s how /dev/random works on *nix machines that can get raw access to a human, for example) and I would be surprised if it wasn’t used in gaming machines as well.

Anyway, if you want randomness, stick in a radioactive piece of metal and a geiger counter and you can mark the time between decays. I think there are PC cards based on this principle.

For those who are interested, a classic work in the field is the million random digits published by The RAND Corporation in 1955. The numbers are still used today. (The New York Public Library originally indexed this book under the heading “Psychology.”)

Random numbers and pseudo-random number are a thorny issue in computer science.

The computer generated numbers discussed in the cassino story were pseudo-random numbers. Pseudo-random numbers are a sequence of numbers that have many of the statistical properties of true random numbers. For many everyday uses, such as video games, pseudo random numbers are quite good enough to give the impression of truly random behaviour.

There are many ways of generating pseudo-random number sequences with varying degrees of sophistication. However, what all these methods have in common is that no matter how complex the generator function may be, it is, ultimatly, absolutly predictable.

There are some real-world instances of this causing a problem. For example: on some types of network, any of a number of computers may start to transmit a message on a common medium such as a coaxial cable. Of course, it can happen that two computers start to transmit simultaneously, in which case each will garble the message of the other. The solution to this problem is that when a computer is transmitting its message it also listens, if what is heard does not match what is being transmitted then the computer assumes that its transmission has collided with the transmission of another computer. Under these circumstances, each computer stops transmitting, waits for a random period and then listens again, if the line is free it resumes transmission. With a random wait, one of the comuters will start before the other with a high probablity.

Obviously, there is a potential problem with this protocol. Messages from two computers that are using identical sequences of pseudo-random numbers to will go on colliding indefintly.

This sort of problem can be solved in a number of ways:

Pseudo-random number generators may be seeded with a unique number (e.g. the machines serial number or date of manufacture) so that each machine will start at a different point in a pseudo-random sequence.

Pseudo-random number generators may be combined with other pseudo-random sources such as the current date and time or the speed with which the computer executes its programs. These are things that can be impossibly difficult to predict in advance, especially in a complex system where a different combination of programmes may be running. However, none of these solutions is truely random.

Further, pseudo-random number sequences may be combined with (or entirly replaced by) a source of true randomness. Almost any mechanical element of a system will show some random variation - e.g. the time in microseconds between presses of a push-button or the turbulence affecting a disk drive head. However, it is hard to be sure that these sources are random and suitable hardware may not be available anyway.

Finally, there are sources of true random numbers from bespoke hardware, these include radioactive decay and noisy diodes.

Keypress timings or other external events can be used to affect one of the sub-seeds used in generating these numbers. There are a variety of ways (algorithms) to generate pseudorandom number streams, each of which that are used has to be proven to governmental authority. There are methods to combine these streams, so that several different algorithms combine to a greater “cycle” of numbers. If one algorithm generates “random” numbers using a 32-bit seed, the seed will advance with each number generated, and it will begin to repeat after about 4 billion (2[sup]32[/sup]) occurrences. Add another seed using a different 31-bit seed algorithm plus a method to generate a well and evenly distributed spread of numbers from both seeds and any pattern will repeat after more than 9 quintillion (2[sup]63[/sup]) draws. Now use a background timer to advance the first seed 50 times a second, and advance the second seed whenver a player presses a button.

The RNG in video slots is generally even more involved than what I describe here.