“Anyone who attempts to generate random numbers by deterministic means is, of course, living in a state of sin.” – John von Neumann
Two days of the week are named after celestial bodies (the sun and moon), another four are named after Norse gods (Tyr, Odin, Thor, and Freida), and one after a Roman god (Saturn). What’s up with that?
Four consecutive months on the calendar have numeric names in Latin (septem, octo, novem, and decem) – but they’re wrong. September is the ninth month, not the seventh, December is twelfth, not tenth, and so on. Two other months are named after emperors (Julius and Augustus), and four others after Roman gods (Janus, Mars, Maia, and Juno). That leaves two, which aren’t named after anything, really.
Who’s in charge here?
Maybe it just seems peculiar to English-speakers. Surely other languages and cultures have more rational systems? No, not really. In Japanese, the days are named for the ancient elements of fire, water, earth, etc. – except for Sunday and Monday. In German, the names of the weeks are just as arbitrary, except that Tuesday, Wednesday and Thursday translate literally as “service day, mid-week, and thunder day.” Oh, dear. Thor was the god of thunder, so at least that one is consistent with the English translation, if equally nonsensical.
After the French Revolution, the revolutionaries tried to rationalize their calendar, decreeing a kind of metric system for dates, with 12 equal months of three 10-day weeks. Very sensible. It lasted about a dozen years.
In the United States, Daylight Saving Time is now observed for more than six months out of the year, which means offsetting time by an hour is now the rule, rather than the exception. Except in areas where it’s not observed at all. (Each state sets its own rules. How mediaeval.)
In most of the world, QWERTY keyboards are the norm, even in countries where English isn’t the primary language (where you’ll see things like AZERTY keyboards). And the QWERTY layout was designed specifically to be inefficient. Almost any alternative would be better from an ergonomic point of view. And yet it persists.
Early automobiles didn’t have steering wheels or foot pedals. Those didn’t arrive until much later, gradually becoming the norm as automakers experimented with a variety of other random control methods. Today’s standardized wheel-and-pedals UI emerged more or less by chance.
Twitter is limited to 140 characters. Why 140? Who knows, but whatever limit it imposed, we’d always ask, “Why that number in particular?” Some things are just random. They happen, and our brains are trained to look for patterns, explanations, or causal effects. Sometimes there aren’t easy patterns, causes, or explanations, as much as we may struggle to find one.
Leveraging that randomness and lack of causality for the forces of good are two researchers at the University of Texas at Austin, who think they’ve discovered a new way to generate random numbers. True randomness has always been difficult to create with computers or electronic circuits, which are by nature manmade and predictable. The usual trick is to inject some piece of randomness from the real world, such as measurements of air temperature, decay of a radioactive isotope, or the nth decimal place on an atomic clock.
To the average observer, these are random measurements, making them good seeds for a random-number generator. But to a purist, they’re not random enough. The exact air temperature may be unpredictable at any given moment, but it’s going to be close to the air temperature taken a few minutes ago, or a few minutes from now. Sampling the stock price of a random company on a random date also seems random, but stock prices follow a rise/fall pattern that’s not completely random (much as it may seem so to the luckless investor).
Simply stated, the UT/A researchers combined two random and unrelated samples to create a super-random seed. While that seems like a pretty straightforward concept – heck, why not just gather three samples while you’re at it? – it’s the mathematics of combining the two samples that’s the real breakthrough. Lead researcher Zuckerman says he’s spent more than 20 years trying to solve this exact problem.
It’s fairly easy to find a source of randomness to seed a random number generator (RNG). But because the quality of the RNG’s output relies so heavily on its input, there’s a tricky balance between “true” randomness and cost-effectiveness. Truly random sources of input are both expensive and difficult to locate. Your average 50-cent microcontroller isn’t going to contain a cesium clock just for purposes of sampling its decay characteristics. So, instead, we rely on “weakly random” sources that are good enough, for the most part.
Zuckerman and coauthor Chattopadhyay still use commonly availably “weakly random” sources, but they combine two different ones in such a way that the result is far more random than either would be by itself. It’s like combining two base metals and creating RNG gold.
Best of all, Zuckerman and Chattopadhyay say that, although the mathematics involved in combining the two samples is complex, it’s relatively easy to implement in hardware or software. Much easier than previous methods, they say. That’s good news for chipmakers and for developers creating their own RNG hardware or software. The combination of two middling-quality seeds along with the new algorithm should create a very high-quality RNG for less money than the alternatives.
It’s not that high-quality random numbers were impossible to generate before. It’s that they were either too expensive or too resource-hungry, or both. The UT/A paper should show the way to a lower-cost method of achieving higher quality results, with implications for security and cryptography, or almost anything else these days.
Now, if only we could discover a few sources of random behavior. I’ll have to mark that on my calendar…