Pretty image

Recently, you find yourself obsessing over time. You feel the need to know the time with absurd precision and accuracy.

Who Knows Where the Time Goes?

You take comfort in the fact that your computer checks in regularly with some time server, but you start thinking about the pathway that information has to follow to get to your brain. Your computer is on a LAN, so there’s the local pathway, then there’s the random internet pathway over which the LAN connects with that time server, and does that server really keep the time itself, or is it in turn checking with whatever subatomic device it is at the Greenwich Observatory that keeps track of the official time, if that’s still the case? All those links with all those latencies.

You only stop obsessing over these latencies when you realize that they are completely swamped out by the real bottleneck in the system: the optic nerve, which slows the signal to about 60 meters per second. You’re always going to be something like 1/10th of a second behind the time, because that’s how long your eye takes to tell your brain what it sees.

In any case, when it comes to time, you’re a stickler for precision and accuracy. And they’re not the same thing, of course. Not at all.

The Dead Zone

Your cell phone is capable of keeping track of the time with ridiculous precision. Far more precision than you can possibly use. But because you let the battery die today and are currently in a cellular dead zone, it has zero accuracy. You’ve replaced the battery, but what good does that do you now, with no connection, on the road in a motel in the sticks where the desk clerk answers your request for a wake-up call with a reminder that there’s a digit clock on the nightstand.

The clock on the nightstand may in fact be highly accurate. Anyway you’re going to assume that it is, because you appear to have no alternative. But it lacks precision.

If the clock was set to, say, 8 AM on some past day at the exact second when it turned 8 AM and has been keeping perfect time since then, then when it tells you that it is now 6:43 PM, as it is doing now, all you know is that it is somewhere in the interval between 6:43:00 and 6:44:00 PM. Technically, the interval is closed on the left and open on the right: it’s no earlier than 6:43:00 and not as late as 6:44:00, but it could be arbitrarily close to the latter time. So 6:44 is as good a guess as 6:43 for the real time.

You need to catch a flight in the morning, so you want to know the time as accurately and precisely as possible under the circumstances. Plus, you always want to know the time as accurately and precisely as possible. You fall asleep worrying about the time.

Dreaming of Clocks

Time, as it will, passes.

You sleep. You dream clock puzzles. First, a digital clock puzzle:

How many times per day will a digital clock in 12-hour mode display three identical consecutive digits?

Easy. Then you dream of an analog clock puzzle:

How many times per day do all three hands of an analog clock coincide?

Also easy, even in your sleep.

What Time Is It Really?

You wake up. The first light of dawn is coming in the window. This tells you nothing except that it is morning. You glance at the clock. 5:45. You close your eyes and count off what you think is 15 seconds. You’re pretty good at this; in 15 seconds you’re not going to be off by an appreciable amount. You open your eyes and glance at the clock again. Still 5:45.

What is your best guess for the current time, to a tenth of a second?

That’s even easier than your dream puzzles, right? Or is it?

If all those puzzles failed to challenge you, how about this one:

Why do we remember the past, but not the future?

Sean Carroll takes a crack at that and other deep puzzles of time in From Eternity to Here: The Quest for the Ultimate Theory of Time, just released by Dutton.

Solution to Last Month’s Quiz

Last month we offered up a snippet of public domain source code, part of a translation of a famous program originally written in 1966 into a programming language created in 1993. (Technically, into source code for an editor that has the 1993 programming language embedded in it.)

But to make a puzzle of it, we encrypted the source using a simple letter-substitution code. The challenge was to decrypt the result and identify both the program and the 1993 language. (We didn’t require you to port it back to the 1966 source.)

Here’s the code as we presented it:

 qstgq xhmtunsm Vqneg(uvlu)
  qstgq wvojsmov = ""
  qstgq hovw = ouwnmc.hjjvw(uvlu)
  qstgq hovwSwnc = hovw
 
  -- wgmrsfqk ovqvtuvr wvjqnvo nx ms avkiswro
  qstgq wgmrWvjqnvo = {
  "IZGU RSVO UZGU OHCCVOU US KSH?",
  "N OVV...",
  "N'F MSU OHWV N HMRVWOUGMR KSH XHQQK.",
  "TGM KSH VQGYSWGUV SM UZGU?",
  "UZGU NO PHNUV NMUVWVOUNMC!",
  "UZGU'O OS... JQVGOV TSMUNMHV...",
  "N HMRVWOUGMR...",
  "IVQQ, IVQQ... RS CS SM",
  "IZK GWV KSH OGKNMC UZGU?",
  "JQVGOV VLJQGNM UZV YGTACWSHMR US UZGU WVFGWA...",
  "TSHQR KSH OGK UZGU GCGNM, NM G RNXXVWVMU IGK?",
  }
 
 ...
 
 -- tsmdhcguv
 qstgq tsmdhcguv = {
  [" N "] = "KSH",
  [" GWV "] = "GF",
  [" IVWV "] = "IGO",
  [" KSH "] = "FV",
  [" KSHW "] = "FK",
  [" N'BV "] = "KSH'BV",
  [" N'F "] = "KSH'WV",
  [" FV "] = "KSH",
  [" GF N "] = "KSH GWV",
  [" GF "] = "GWV",
 }
 
 -- wgmrsf wvjqnvo, ms avkiswr
 qstgq xhmtunsm wvjqkWgmrsfqk()
  wvojsmov = wgmrWvjqnvo[fguz.wgmrsf(ugyqv.cvum(wgmrWvjqnvo))].."\m"
 vmr

And here it is decrypted:

 local function Eliza(text)
  local response = ""
  local user = string.upper(text)
  local userOrig = user
 
  -- randomly selected replies if no keywords
  local randReplies = {
  "WHAT DOES THAT SUGGEST TO YOU?",
  "I SEE...",
  "I'M NOT SURE I UNDERSTAND YOU FULLY.",
  "CAN YOU ELABORATE ON THAT?",
  "THAT IS QUITE INTERESTING!",
  "THAT'S SO... PLEASE CONTINUE...",
  "I UNDERSTAND...",
  "WELL, WELL... DO GO ON",
  "WHY ARE YOU SAYING THAT?",
  "PLEASE EXPLAIN THE BACKGROUND TO THAT REMARK...",
  "COULD YOU SAY THAT AGAIN, IN A DIFFERENT WAY?",
  }
 
 ...
 
  -- conjugate
  local conjugate = {
  [" I "] = "YOU",
  [" ARE "] = "AM",
  [" WERE "] = "WAS",
  [" YOU "] = "ME",
  [" YOUR "] = "MY",
  [" I'VE "] = "YOU'VE",
  [" I'M "] = "YOU'RE",
  [" ME "] = "YOU",
  [" AM I "] = "YOU ARE",
  [" AM "] = "ARE",
  }
 
  -- random replies, no keyword
  local function replyRandomly()
  response = randReplies[math.random(table.getn(randReplies))].."\n"
  end

It’s Eliza, Joseph Weizenbaum’s classic imitation of a Rogerian therapist (or a small part of it). Kein-Hong Man ported it rather faithfully to Lua (embedded in the SciTE editor).

Two readers solved the puzzle very quickly on the day it was published, one of them within minutes of its release. That they were able to decode this based on such skimpy information means something. We wish somebody would tell us what.