Challenge #10 – Robots

The Challenge

Difficulty: 5/5.

Everything was going to plan, when you realise your friend is missing.

You notice three robot guards, and you think she may be disguising herself as one of them.

All robot guards are programmed exactly the same:

  • Each day is a truth day (so they must tell the truth the whole day) or a lie day (they must lie the whole day).
  • They all follow the pattern of one truth day followed by two lie days (T L L T L L T L L…)
  • They are not independent: They all have truth/lie days on the same days as each other.

The three guards say the following phrases:

  • Guard A: “In 2 days time, I will tell the truth”
  • Guard B: “Tomorrow, I will tell the truth”
  • Guard C: “One year* ago, I lied”

Which guard is secretly your friend?

*Assume one year = 365 days

The Solution

We know all guards will work in the same way, so we need to look for an “odd one out”. Let’s start by figuring out what day it is today. Is it a truth day, the first lie day (L1), or the second lie day (L2)?

Guard A

Guard A will tell the truth in 2 days time. Let’s look at the 3 cases of today being a Truth day, the first Lie day (L1), or the second Lie day (L2):

  • Truth day today: With the cycle T L L T L L…, in 2 days time it will be a lie day. But the guard said they would tell the truth, so this is a contradiction.
  • L1 today: With the cycle T L L T L L…, in 2 days time it will be a truth day. But the guard should be lying about it being a truth day, so this is another contradiction.
  • L2 today: With the cycle T L L T L L…, in 2 days time it will be a lie day. The guard said they will tell the truth which is a lie as it should be.

So Guard A must be speaking on the 2nd lie day: L2.

Guard B

Guard B will tell the truth tomorrow. Let’s look at the cases again, similar to above:

  • Truth day today: With the cycle T L L T…, we can see it is a lie day tomorrow. But the guard said they would tell the truth, so we have a contradiction.
  • L1 today: With the cycle T L L T…, we can see it is a lie day tomorrow. Since the guard is lying about telling the truth, this is consistent!
  • L2 today: With the cycle T L L T… ,we can see it is a truth day tomorrow: But the guard said they would tell the truth which is true on a lie day! A contradiction!

So Guard B must be speaking on the 1st lie day: L1.

Guard C

Either Guard A or Guard B must be the friend since we have shown that the day they are programmed to is different. This means there is no shortcut: We must work out which day it is today according to Guard C.

Guard C lied a year ago. This is clearly the hardest part of the puzzle. Let’s break this down into smaller chunks. We have a cycle of 3 repeating: T L L, T L L, T L L, etc.

If we go back 3 days ago, we land in the same place we are today. In fact any “multiple of 3” days ago, we get back to the same day.

366 is a multiple of 3, so if we go back 366 days, we land on the same day. We want to go back only 365 days, so if we add one day “forwards” from 366, we are actually saying that 365 days ago is equivalent to tomorrow!

Formally, we can write this as -365(mod 3) = 1 .

So one year ago is equivalent to one day in the future from our starting point (tomorrow). You could stop here since you can actually tell that B and C cannot co-exist given their mutually exclusive statements, but let’s conduct a final check that A and C are the guards. Recall that Guard A is speaking on the 2nd Lie day.

  • L2 today: With the cycle T L L T L L…, one year ago (tomorrow) was a truth day. The guard said they lied which is a lie as it should be.

Conclusion

To conclude, A and C are the guards, today is the second lie day (L2), and your friend is B! Were you able to deduce who your friend was?

Common errors

There were a couple of different elements to this puzzle making it challenging. As a result, very few people (out of ~60 submissions in total) sent in a correct solution on the first attempt. Here are some of the most common errors that were made:

  • Treating both lie days as the same. In reality, they operate differently due to their relative position in the cycle. Referring to “tomorrow” from L1 will give a different outcome than L2.
  • Not using a repeating cycle of 3 (T L L).
  • Calculating 365(mod 3) instead of -365(mod 3).
  • Calculating 365(mod 7), or using the days of the week in some way. This would lead to the wrong conclusion as we should think in terms of the 3-cycle.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s