There are 3 talking hats on the table. Each can ask 2 questions, to either hat. 1 of them speaks only truth. 1 speaks only lies. 1 can speak only when spoken to, he will speak at random.

YOU know who's who just fine. But you cannot tell the hats. You can only tell a hat a question to ask one of the other hats, you choose who but NOT BASED on who he is.

How can the 3 hats talk to each other in such a way as to distinguish who's the truth speaker, lie teller, and random chatter?

Note: You can only ask yes/no questions


  • You know which hat is which

  • Yes/No questions only

  • Each hat gets 2 questions

  • You cannot tell a hat to ask another based on who the other hat is

  • The random hat can only ask questions after answering another's question

  • Each hat knows who he is

  • Each conversation is private

HINT: If presented with a question the hat does not know, he will answer to the best of his ability with yes/no, following their rules.

HINT 2: If the truth teller or liar is presented with a question he does not know, they must answer to the best of their ability ~ Not answering. The random does not need to know the answer to reply, therefore he can answer freely.

  • $\begingroup$ Does the liar lie to itself? $\endgroup$
    – blakeoft
    May 19 '15 at 12:43

The Truth-Teller asks Hat-A "Is he a Truth-Teller". If he answers then he the Random-Hat. If he doesn't then he is the Liar. Hat-B can now be inferred. Only one question needed.

The Liar asks Hat-A "Will Random-Hat say 'yes' to his next question?". If he answers then he the Random-Hat. If he doesn't then he is the Truth-Teller. Hat-B can now be inferred. Only one question needed.

The Random Hat asks Hat-A "Would Hat-B say 'Yes' if I asked him whether he is the Truth-Teller?". If he is the Liar then he says "No". If he is the Truth-teller, he says "Yes". Hat-B can now be inferred. Only one question needed.

  • $\begingroup$ They can't all ask hat A, one of them has to be the hat A. In any case this works only for the first two steps. After that whichever the random hat asks would know the answer. (You'd need to use the "what would you answer if I asked are you the truth hat" question.) $\endgroup$
    – JJJ
    Oct 4 '14 at 14:29
  • $\begingroup$ Hat-A (it doesn't matter whether he's a Liar/Truth-Teller/Random) is arbitrary. It doesn't matter which he asks. Look at it again. $\endgroup$
    – d'alar'cop
    Oct 4 '14 at 14:30
  • 1
    $\begingroup$ Ok, usually if you name the entities the same name refers to the same one throughout. $\endgroup$
    – JJJ
    Oct 4 '14 at 14:32
  • $\begingroup$ @Juhana Well this is probably due to the strange problem definition process. What I understood was that for each Hat... the remaining 2 were labelled Hat-A and Hat-B (whose statuses were unknown). So now the answer should make more sense? $\endgroup$
    – d'alar'cop
    Oct 4 '14 at 14:33
  • $\begingroup$ Yeah, but it still doesn't work because if the liar asks the question from the truth teller, the truth teller now knows who the hats are so they will answer the question. $\endgroup$
    – JJJ
    Oct 4 '14 at 14:34

I state that in the current formulation this is impossible.

Let's take for example the truth-hat, it will ask questions. Other hats we number as 1 and 2.

Now consider both possible situations:
A) 1 is lie-hat, 2 is random-hat.
B) 2 is lie-hat, 1 is random-hat.

Using those question truth-hat must find out which situation is present.

Now lets consider a possible case that random-hat accidentally answers on all questions it is asked (0 questions, 1 or 2, doesn't matter) exactly as a lie-hat would answer. In this case each question that is asked will be answered exactly the same both in situation A) and in situation B). Therefore truth-hat can not complete the task.

The same is true for lie-hat. Only random-hat can complete the task, asking only one question "What would you answer if I ask you are you truth-hat?".

  • 2
    $\begingroup$ I agree. The current formulation is still unclear and ambiguous - suggest full rewrite $\endgroup$
    – d'alar'cop
    Oct 4 '14 at 13:37
  • $\begingroup$ I assure you it is possible. You must use 1 question to determine who the random hat is. $\endgroup$
    – warspyking
    Oct 4 '14 at 13:44
  • $\begingroup$ @klm Look at the hint in the question $\endgroup$
    – warspyking
    Oct 4 '14 at 13:53
  • $\begingroup$ So in the end. It was possible in the current formulation. $\endgroup$
    – warspyking
    Oct 4 '14 at 14:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.