Tuesday, March 7, 2017

liars - Knight, Knave and Joker puzzle


Here is an excellent puzzle with 3 types of characters:




You are lost in a town and meet 3 men. You somehow (God told you) know that they are Knight, Knave and Joker. Knight always tells truth, Knave always tells the opposite to the truth, Joker randomly decides whether to tell truth or lie.
You need to find at least one person who can give you some information, but the problem is that you do not know who is who. Luckily the three knew amongst themselves who they are. So you need to find someone who is not a Joker. How do you do it asking one yes-or-no-question to one person only if you are not allowed to ask a man something he doesn't know or any question he cannot answer either "yes" or "no" to.



Since the problem seems to be impossible for a lot people (at least at the beginning) I am adding a lot of explanations to let you be sure that there is no trick:



  1. You cannot ask something like "How many friends do you have?". This is not a yes-or-no question.

  2. You cannot ask questions like "Will it rain tomorrow?". He doesn't know.

  3. You cannot ask arbitrary man "What would you answer if I ask you blablabla?", if it is the Joker he doesn't know this about his own answers.

  4. You cannot ask something like "Will you answer No to this question?". Truth-teller can't answer this question.


  5. You do not get any additional information (like by looking at behaviour, by lack of answer, or whatever is on your mind) and must decide who is not a Joker based on the answer ("yes" or "no") itself only.

  6. You cannot force them to do stuff. Even implicitly. So you cannot ask "Will your friend scream if you hit him next second?" and expect to get an answer. The answer is unknown at the moment you ask the question therefore you are asking a forbidden question.

  7. This puzzle is not about "how to find a way around the rules".



Answer



Actually this IS doable. As quite a few other answers have argued, it's clear from common sense that no question you ask somebody rule out the person you ask being the Joker. No matter what you ask, you always have to worry about the Joker screwing up your logic.


But, the aim is to identify one person who is NOT the Joker. Note we don't have to identify whether they're Knight or Knave. So how about we always pick somebody who we don't question? Now if we question the joker, it doesn't matter what he says because we'll just pick one of the other two! That means we just have to worry about asking a question informative enough that it'll allow us to identify the joker if we're talking to either the knight or the knave.


So say the people are A, B and C. You ask A:


"Is exactly one of these statements true:




  1. You are the knight

  2. B is the joker"


If you get back the answer yes, then the possibilities are:



  • A is the knight and B is the knave (1. true, 2. false, so one statement true, so answer is yes which knight truthfully gives)

  • A is the joker

  • A is the knave and B is the knight (both statements false so answer is no which knave lies about)


In all three cases, B is safe



If you get back the answer no, then the possibilities are:



  • A is the knight and B is the joker (both statements true, so answer is no which knight truthfully gives)

  • A is the joker

  • A is the knave and B is the joker (1. false, 2. true so one statement true so answer is yes which knave lies about)


In all three cases, C is safe


No comments:

Post a Comment

classical mechanics - Moment of a force about a given axis (Torque) - Scalar or vectorial?

I am studying Statics and saw that: The moment of a force about a given axis (or Torque) is defined by the equation: $M_X = (\vec r \times \...