Home » Volume 3, Issue 1 » Editors' Notes Archive, Logic

Solution to the Hardest Logic Puzzle Ever

13 September 2009 4,830 views 2 Comments Print This Post Print This Post

So after verifying my answer with American philosopher George Boolos’s solution, here is my solution to the “Hardest Logic Puzzle in the World.”  Enjoy.

“Three gods A, B, and C are called, in some order, True, False, and Random. True always speaks truly, False always speaks falsely, 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 English, but will answer all questions in their own language, in which the words for yes and no are ‘da’ and ‘ja’, in some order. You do not know which word means which.”

Here’s a few clarifications about the puzzle.

1. It could be that some god gets asked more than one question (and hence that some god is not asked any question at all).

2. What the second question is, and to which god it is put, may depend on the answer to the first question. (And of course similarly for the third question.)

3. Whether Random speaks truly or not should be thought of as depending on the flip of a coin hidden in his brain: if the coin comes down heads, he speaks truly; if tails, falsely.

4. Random will answer ‘da’ or ‘ja’ when asked any yes-no question.

The first approach I took here was to find a god that I could be certain is not Random which would make that god either True or False.  This is quite difficult though because you do not know what ‘da’ or ‘ja’ means.  All you know is that each of them either means yes or no.

To get to the appropriate answer then, I thought about forming the question using logical connectives such as:

“Does ja mean no if and only if you are true if and only if B is random?” (p ≡ q ≡ r)

p = ja means no

q = you (the god) is true

r = B is random

As you can see from above I used a biconditional to construct my question.  A logical biconditional is a logical operator that connects two statements to assert the statement p if and only if q (or p ≡ q).  The different between a biconditional and a material conditional (if-then statements) is only seen when the hypothesis (p) is false and the consequent (q) is true.  In the case of the material condition that statement is true, but in the biconditional that result is false.  Here is a truth table to show this:

.

p q p → q
T T T
T F F
F T T
F F T

.

p q p ≡ q
T T T
T F F
F T F
F F T

.

You could actually formulate many different questions to found out which god is for certain not random.  The similarity between all these different questions that involve biconditionals is that there are three statements being made and we are asking if an odd number of the following statements are true.

This approach can be a bit difficult if someone doesn’t have a background in basic formal logic.  Another way to solve the puzzle is by using counterfactuals.  A counterfactual is a “if-then” statement that indicated what would be the case if its antecedent were true.  If you are using counterfactuals, the goal is to formulate a yes/no question (Q) for either True or False that asks the following: If I asked you Q, would you say ‘ja’?

By doing so, you get an answer to the question that results in the answer ‘ja’ if the truthful answer to Q is yes, and ‘da’ if the truthful answer to Q is no.

You might be asking, “Why can we assume that the answer would be ‘ja’ if the truthful answer to Q is yes and ‘da’ if the truthful answer to Q is no?”  The simple is that this question covers every situation possible and leaves no unanswered questions in figuring out which god is True, False, and Random.  There are eight possible situations within two different circumstances in this puzzle and this question covers all of them.  Let’s look at them.

Let’s assume the answer ‘ja’ means yes and ‘da’ means no.

  1. True is asked Q and answers with ‘ja’.  Since she can only tell the truth, the truthful answer to Q is ‘ja’ which means yes.
  2. True is asked Q and answers with ‘da’.  Since she can only tell the truth, the truthful answer to Q is ‘da’ which means no.
  3. False is asked Q and answers with ‘ja’. Since she can only tell lies, it follows that if you asked her Q she would instead answer ‘da’.  Because she’s lying, the truthful answer to Q is ‘ja’ which means yes.
  4. False is asked Q and answers with ‘da’. Since she can only tell lies, it follows that if you asked her Q she would instead answer ‘ja’.  Because she’s lying, the truthful answer to Q is ‘da’ which means no.

Now let’s assume the answer ‘ja’ means no and ‘da’ means yes.

  1. True is asked Q and answers with ‘ja’.  Since she can only tell the truth, the truthful answer to Q is ‘da’ which means yes.
  2. True is asked Q and answers with ‘da’.  Since she can only tell the truth, the truthful answer to Q is ‘ja’ which means no.
  3. False is asked Q and answers with ‘ja’. Since she can only tell lies, it follows that if you asked her Q she would instead answer ‘ja’.  Because she’s lying, the truthful answer to Q is ‘da’ which means yes.
  4. False is asked Q and answers with ‘da’. Since she can only tell lies, it follows that if you asked her Q she would instead answer ‘da’.  Because she’s lying, the truthful answer to Q is ‘ja’ which means no.

As you can see, this makes the puzzle relatively simple.  From this we can finally attack the puzzle and ask the three gods our three questions. (These three steps were taken from Brian Rabern and Landon Rabern’s solution to the logic puzzle which can be found at the bottom of this article.  My solution to the puzzle was quite similar to theirs, but they have written a clear explanation of their solution that is more eloquently written than I could ever conjure up.)

  1. Ask god B, “If I asked you ‘Is A Random?’, would you say ‘ja’?”. If B answers ‘ja’, then either B is Random (and is answering randomly), or B is not Random and the answer indicates that A is indeed Random. Either way, C is not Random. If B answers ‘da’, then either B is Random (and is answering randomly), or B is not Random and the answer indicates that A is not Random. Either way, A is not Random.
  2. Go to the god who was identified as not being Random by the previous question (either A or C), and ask him: “If I asked you ‘Are you True?’, would you say ‘ja’?”. Since he is not Random, an answer of ‘ja’ indicates that he is True and an answer of ‘da’ indicates that he is False.
  3. Ask the same god the question: “If I asked you ‘Is B Random?’, would you say ‘ja’?”. If the answer is ‘ja’ then B is Random; if the answer is ‘da’ then the god you have not yet spoken to is Random. The remaining god can be identified by elimination

Thus, you have supposedly solved the hardest logic puzzle ever.  I believe you can formulate Q in a number of ways in the same fashion that can successfully cover all eight possible situations within the two different circumstances of ‘ja’ and ‘da’.  The goal is to nevertheless

For those who found this puzzle relatively easy, there are ways to make this puzzle a bit more difficult.  Try to solve the puzzle in two questions or less.  It’s entirely possible to do so and people have done it before!

Are there harder ones?  Of course there are.  Unfortunately the new puzzle will be posted in the next issue of the online edition of Prometheus.

If you want to look at a different take to the logic puzzle, please look at George Boolos’s solution here.

If you have any questions about my solution, please check out Brian and Landon Rabern’s solution here.

If you have specific questions not answered in any of these philosopher’s solutions or a different solution to the puzzle that you want to be verified, please feel free to e-mail me at editors@prometheus-journal.com.  I always look forward to reader’s e-mails.

Editor-in-Chief

Cuong Q. Nguyen

2 Comments »

  • Prometheus » The Hardest Logic Puzzle Ever said:

    [...] UPDATE: You can find my solution and other solutions to the puzzle here. [...]

  • Matt Jacoby said:

    This only works IF the gods know who each other are, and the riddle does not state whether or not that is the case!

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>