Get ready for a big one, as this puzzle takes a while to explain completely. But let me start of by saying this puzzle is definitely not one you want to use on a group who doesn't like puzzles, it really is that difficult. At least, difficult to those who aren't used to thinking in a specific way. Programmers, mathematicians, and similar folk might love this puzzle, they might even find it fairly easy once they approach it from a programming/mathematical point of view, but to the rest of the world this puzzle can seem like an impossible task.
Full disclosure, I didn't manage to figure out the puzzle myself. I managed to figure out parts of it (see later), but I eventually gave up as it was taking up way too much time.
The puzzle is as follows:
"Three gods, A, B, and C, are called, in no particular order, True, False, and Random. True always speaks the truth, False always tells a lie, but whether Random speaks truly or falsely is a completely random matter.
Your task is to determine the identities of A, B, and C by asking three yes-no questions. Each question must be put to exactly one god. The gods understand the language you speak, but they will answer your questions in their own language. The words for yes and no are ja and da, but you don't know which is which."
Confused yet? Here are some guidelines that might help you out:
- You can ask one god multiple questions.
- You can ask the same question of multiple gods, but they count toward your three questions.
- What the second question you ask is, and to whom it is directed, could depend on the answer of the first question.
- Random's answers could be seen as a coin flip. If it falls on heads it could be a true answer, if it falls on tails it could be a false answer.
- Random will answer either 'da' or 'ja' when asked any yes-no question. It truly is random.
I will be using George Boolos' solution to this puzzle, although I will change his examples to versions I understand. The reasoning for this will become clear later. Boolos is a philosopher and logician who made this puzzle famous in an article he published in 'The Harvard Review of Philosophy'.
Boolos states that to help figure out the entire puzzle it can help to first learn of 3 smaller, but far easier puzzles.
The first puzzle is as follows:
Two aces and one jack are placed face down on a table, you do not know which is which. You are tasked with asking a single yes-no question, from the answer to which you can identify one of the three cards as an ace with absolute certainty. If you point at an ace while asking your question I shall answer truthfully, but if you point at the jack I shall give you a random answer of yes or no.
This puzzle, while similar to the main one, is indeed far easier to solve. The solution? Point at the middle card, then ask, "Is the left card an ace?".
If the answer is yes, the card to the left must be an ace. If the answer is no, the card to the right must be an ace.
Feeling confused? If so, let me explain and illustrate the answer. If the middle card is an ace, the answer will be truthful, so if the answer is yes, the left card is an ace, and if the answer is no, the left card is a jack.
If the middle card is a jack, both left and right cards are aces, so the random answer doesn't matter. Both left and right are a safe pick.
The second puzzle in Boolos' article initially states: Somehow you've learned that you are speaking not to Random, but to True or False (you don't know which) and that they will answer in English."
This essentially turns the puzzle into the more well known puzzle "Knights and Knaves", which is as follows (there are many different versions):
You come across a wall on the road with 2 doors. The two doors are guarded by 2 guards, only one of the doors leads to the sea, which is where you want to go. One of the guards always tells the truth, the other always tells a lie. The guard who speaks the truth will be guarding the door you need to go through. You can only ask a single yes-no question of the guards. How do you figure out what door to take?
The solution lies within Boolean algebra and a truth table. Which means instead of asking a simple question containing a single factual element, ask a question that contains two.
"Would you tell me your door leads to the sea if I asked you?"
"Are you True and does your door lead to the sea?"
"Is the moon smaller than the sun, and does your door lead to the sea?"
There are many questions like these you could ask. What they do is create either two positives in the case of the truth speaker (Yes my door leads to the sea, and yes I would tell you. So my final answer is yes.) or to two negatives in the case of the liar (No, my door doesn't lead to the sea, but I would say it would. So my final answer is no.).
To make it even simpler: The answer to "Does your door lead to the sea?" given by False would be "yes". If you asked False what the answer to that question would be, which is "yes", he would lie and tell you "no".
True will always answer "yes" to the question, so you now know which door to enter.
Boolos' third puzzle is intertwined with his second. My version is as follows:
You're talking to a foreign god who refuses to answer with "yes" or "no", despite understanding English perfectly fine. Instead they use "da" and "ja". What single yes-no question can you ask to determine whether "Daralek" can be found in "Corifnik"?
You can use any statement here, but the point of this puzzle is having a statement which you don't know the answer to, so you wouldn't know what the answer meant if you simply asked "Can 'Daralek' be found in 'Corifnik'?".
There's one last little tidbit you need to know. What we did in the previous puzzle is something that's used a lot in programming and philosophy, which is using 'if statements'. More specifically in this case, an 'if and only if statement', which is usually shortened as 'iff'. So when you see 'iff' below it means 'if and only if', it's not a typo.
An iff statement is true if both statements are either true or false, and an iff statement is false if one statement is true, and the other is false.
The answer comes from a question posed similarly to that of puzzle 2: "Does da mean yes if 'Daralek' can be found in 'Corifnik'?". There are 4 possibilities:
Da means yes, and 'Daralek' is in 'Corifnik'. The answer will be da, as both statements are true.
Da means yes, and 'Daralek' is not in 'Corifnik'. The answer will be ja, as one statement is false.
If da means no, and 'Daralek' is in 'Corifnik'. The answer will be da, as one statement is false.
If da means no, and 'Daralek' is not in 'Corifnik'. The answer will be ja, as both statements are false, meaning the entire iff statement is true overall.
Now, armed with this puzzle knowledge, we can solve The Hardest Logic Puzzle in the World!
Step 1: Find out which god is definitely not Random. Boolos does it with the following question posed to god A: "Does da mean yes iff, you are True iff B is Random?".
I initially posed a different question, as I couldn't see how Boolos' questioned worked. My thinking was flawed, and I've since had a kind user of my site explain it to me (thank you GreySage), but I'll leave in my version for the sake of others who may be thinking like I did. I'll delve into my previously flawed thinking more at the end of this guide as it's not important here, but it could help you with dealing with the problems your players might have, as they could be the same as mine were.
So, the question I would pose to god A is "If I asked you if B is Random, would you say da?". If the god answers 'da' you know for a fact C is not Random. If the answer is 'ja' instead, you know for a fact B is not Random. How?
If you asked True if B was random, and B was indeed random, the answer would always be 'da' no matter whether it means yes or no. "If I asked you if B was random, would you say yes?", "If I asked you if B was random, would you say no?". The answer to both questions is the last word in that question, the same goes for "Would you say da?".
On the other hand, if B isn't random the answer becomes the opposite of the last word.
Does it still make sense? I hope so. Let's look at False now.
If you asked False if B was random, and B was indeed random, the question will also always be 'ja', no matter whether it means yes or no.
"If I asked you if B is Random, would you say da?". If da means yes False would say "da", as he'd by lying about saying no. If da means no, False would say "da", as he'd by lying about saying yes (or ja).
Following this logic, the answers again become opposites when B isn't Random.
But don't forget about Random, their answer throws everything for a loop. Right? Not quite. If Random answers 'da', you know B could be Random according to the previous explanations, or A could be Random (as in you're talking to Random), but C could never be Random.
If Random answers 'ja', you know B definitely isn't Random. As, again, according to the previous explanation an answer of 'ja' would definitely mean B isn't Random according to False and True, and if you're talking to Random then B is definitely not Random either.
So, depending on the answer you received you now know which one of the gods is definitely not Random. This makes everything a lot easier, but you only have 2 questions left.
So we've figured out which god is definitely either True or False. How do we figure out which god they truly are? Boolos uses the question "Does da mean yes iff Rome is in Italy?", but again I cannot wrap my head around how this could lead to the identity of the right god, but more on that later still.
I would ask: "If I asked you, 'Are you true?', would you say da?". As we've seen in the previous examples, if this statement is indeed true the answer of True will be affirmative, and thus 'da', while the answer of False would be the opposite, and thus 'ja'. You now know with absolute certainty the identity of one the gods.
All you need to do now is figure out which one of the remaining two is Random, and which one is True or False, depending on the identity of the one you just figured out.
Since you know the identity of this particular god the question is simple: If I asked you, "Is god A Random?", would you say 'da'?.
If it is the truth you'll get the answer 'da', if it's not you'll get the answer 'ja'. You now know the identities of all the gods.
So the previous Boolos questions are ones that took me looking up the answer and still not understanding it, then thinking about it more and creating my own questions. But one thing I and others did think about was using paradoxical questions to figure out who's who. I think it works, but it depends entirely on how you view both False and Random's answering behavior.
If you ask any of the gods "Will you answer this question with the word that means no in your language?", True cannot possibly answer it. So, if you do get an answer, you know this god is either Random or False. If you don't get an answer you know this god is True.
Turn to a god that's definitely not True, which depends on the previous answer. Ask "Will you answer this question with the word that means yes in your language?". False cannot possibly answer this. So, depending on whether you get an answer or not you know this god is either False or Random. In some cases you'll already know all the identities of all the gods by now, but you may need to ask one of these questions again to one of the remaining gods, depending on whether you figured out if one of them is True or False.
There is a problem with this method though, which is Random's answering behavior. If we assume his answers are completely random, whether they're true or not holds no meaning, then this solution does work. But if Random's answers do have meaning things start falling apart. If his answers have meaning it means he acts as either True or False at random, which means his head would also explode to some of the questions. This isn't a problem on its own, it's still possible to figure out the identities if Random does behave like this, but since we don't know which way it is we can't be certain, and that's where this method fails.
If you're fine with this method make sure you tell your players how exactly Random answers.
As mentioned, I'd delve deeper into why I couldn't get my head around Boolos' questions. If anything I hope it'll at least help you with this puzzle or with your players who might approach this puzzle in the same way I do.
My biggest issue with question 1 wass that in my mind it didn't solve anything. There are 3 questions within this initial question:
- Does da mean yes?
- Are you true?
- Is B Random?
The combination of how iff statements really work, and the lies of False confused me. My initial thought was that False's answers would be like this:
Then there's False's possible answers:
If da means 'yes' and B is Random, False will answer 'da' or "Yes, this is all true.", as he lies about being True.
If da means 'no' and B is Random, False will answer 'ja' or "Yes, this is all true.".
If da means yes and B isn't Random, False will answer 'da' or "Yes, this is all true.".
If da means 'no' and B isn't Random, False will answer 'ja' or "Yes, this is all true.".
That last option would actually be 'da' or "No, this is all false.". Why? Because every statement in that iff statement is false, which means the iff statement overall is true, which means False will say it's not true.
This puzzle is often known as the Boolos puzzle, or "The Worlds Hardest Logic Puzzle". But credit where credit's due, something Boolos understood as well based on his article, Raymond Smullyan came up with the original version of this, and Boolos also credits John McCarthy with adding the difficulty of not knowing what da and ja mean.