2009-03-10

Mystery Wheels

Bengt has made a new invention. It's a randomiser.
It has a number of wheels, wheels which are partially conductive. The wheels spin, and there is a contact brushing against each wheel. All the wheels are connected in one circuit, so each wheel can either let the current pass or break the circuit. It acts as a switch, switching on and off once per turn.
Then there is a little device which sends a short electrical pulse through the circuit and registers whether it makes it through or not. There are n wheels, and the fraction of the wheel which is conductive is 1/(nth root of 2), so the probability of the pulse going through is 1/2.
The wheels all look the same, but they spin at different (constant) speeds. Bengt figures that since the ratios between the speeds are not rational numbers, the same configuration of wheels will never occur twice, making the device a really great randomiser - you will never be able to predict the result of a pulse. That's the idea, anyway.
One way to use the machine is to send pulses periodically, with a certain frequency, to get a randomised bitstring. This frequency can be assumed to be significantly lower than the rotation speed of the wheels.
  1. Will you eventually be able to guess the next bit in the bitstring, that is, the outcome of the next pulse? Will you be able to guess it only with a limited degree of certainty, or will you ever be able to predict it with 100% accuracy?
  2. If it is possible to reach enough predictability to make the randomiser unreliable - that is, the number of correct guesses become significantly larger than the number of false guesses - how does the time it takes to get there depend on the number of wheels?
  3. How does it depend on the speed of the wheels? Will faster wheels make the randomiser better? How much better?
  4. Is it possible to calculate an actual upper bound for how long it takes to reach predictability, as a function of the number of wheels, the upper bound of the speeds of the wheels, and the pulse frequency? If it's possible, please do.
  5. Suppose you are capable of sending pulses at any time, as long as there is a certain minimum delay between each pulse. Sending pulses periodically with exactly that delay will give you a certain bitstring. Now, in order to predict that bitstring, is there any other pattern of pulses that would do it faster? That is, is there any pattern of pulses that would give you the information needed to predict the periodic pulses faster than the periodic pulses themselves?
  6. Provided you have the added advantage of knowing the outcome of the previous pulses, is there any faster way of "cracking" the machine than sending pulses at a predetermined pattern? (No, you're not allowed to physically crack it open.)