Well,

I found this puzzle from here. It is on the similar line to one of the earlier puzzle I posted. However, one significant difference is that the commoner was not present in the earlier ones. Anyways, stating the puzzle below

**Problem : **Long long ago, there was a king (so cliche..eh? ). He wanted to marry his daughter. There were three candidates : a knight, a knave and a commoner. The knight always spoke the truth and the knave always lied. However, the commoner could do either. He used to lie sometimes and tell the truth some other times. The king did not know which one is which. On top of that, the candidates did not know each other. King wanted to, by all means, avoid marrying his daughter to the commoner. The king asked one yes/no question to each of them ( the same question to each three of them ) and found a suitable candidate for his daughter. What question did he ask?

**Solution : **Well, the important thing to note here is that king did not need to know which one is commoner. Even if he could establish that someone was not a commoner that would do the trick for him. So he asked : “Are you a commoner?”

Knight :No

Knave : Yes

Commoner : Yes/No

With this question king made knight and knave answer differently. Irrespective of what the commoner would answer, he knew that the person in the minority was either a knave ( 1-yes and 2-no ) are a knight (1-no and 2-yes )

Another variation of the problem

**Problem : **Suppose the three candidates knew each other. So a knight knew who was a commoner and who was a knave and similarly the knave and the commoner knew who was who. King was supposed to ask one yes/no question to any two person ( again, he was supposed to ask the same question ). King could figure out a suitable candidate for his daughter, what question did he ask?

**Solution : **As the king did not know which one was which. Let them call A, B and C. So he will choose A and B and ask a question about C.

He would ask : “If I were to ask you if C is a commoner, would you say ‘yes’ “?

Now there are three cases :

**Case 1 :** C is a Commoner

Then let A be knight and let B be knave.

Knight : Yes ( as C is a commoner, and Knight always speaks the truth )

Knave : Yes ( as C is a commoner, Knave would answer “no” to the question “is C a commoner”? So to lie whether he would say “yes” he would say “Yes, I would have said yes if you would have asked me if C is a commoner”.

**Case 2 : **C is a Knight.

Then Let A be the knave and B be the commoner.

Knave : No ( as C is not a commoner, the knave would want to say “yes, C is a commoner”. Would he say “yes”? well, to lie, he would say he would NOT say yes to the question whether C is a commoner )

Commoner : Yes/No

**Case 3 : **C is a Knave

Then Let A be the knight and B be the commoner.

Knight : No ( as the knight always speaks the truth )

Commoner : Yes/No

As you can observe, only when both responses are yes ( as in Case 1 ) you know that C is a commoner. So king can choose from A or B. In all other cases, he knows that at least one response would be “no” to indicate that C is either a knight or a knave in which case, he would choose C.

Well, Deepanjan gave even a simpler solution to this variation.

The question to be asked is : “Does C ever lies?”

1) If one says Yes and another says No, marry the one who said Yes

2) If Both says Yes – marry C

3) Both A and B can never say “No” simultaneously

It is easy to verify that this solution is correct and the question is very simple.

There are two more variations of this problem, solution to which , I am not able to figure out yet.

**Problem 1 : **King can ask two different yes/no question to only one of the candidates.

**Problem 2 : **King can ask only one yes/no question to only one of the candidates.

If any of you know the solution, please post it as a comment.

–Saurabh Joshi

December 20, 2008 at 8:57 pm |

I think I found a solution to the last two variations of the problem.

Problem 1 : King can ask two different yes/no question to only one of the candidates.

1) The king should ask the first question: Are you a commoner? They will answer as following:

Commoner – Yes/No

Knave – Yes

Knight – No

The second question would be: If I were to ask you if you were telling the truth in the first question, would you answer “yes”?

Knave – No (he’s lying, he would have answered yes)

Knight – Yes

Commoner ,depending on the first answer he will now answer either Yes/Yes if he was telling the truth in the first question, or, if he said “no” in the first question, his answer would be No/No

So if the persons answers the two questions with the same answer (Yes/Yes or No/No) he would be a commoner.

Problem 2 : King can ask only one yes/no question to only one of the candidates.

The king should ask the person this question: If I were to ask are you a commoner, would you answer “yes”?

Knight: No

Knave: No

Commoner: Yes/Yes

December 21, 2008 at 6:57 am |

Well, both your answers are wrong. You are assuming that commoner decides to tell the truth or lie and then stick to it. Commoner can change his/her answer each time, that is he can tell the truth once and can decide to lie in the next question.

January 4, 2009 at 4:05 pm |

No, I do not assume he will continue with the same type of answer (lie or truth) in the next question.

On the question “Are you a commoner?” the commoner would say Yes (if his telling the truth) and No if he is not.

On the second question “If I were to ask you if you were telling the truth in the first question, would you answer “yes” ” the commoner would answer as yes if he was telling the truth before, however, if he’s going to lie about it (after saying the truth in the first question) he would also say yes. He’s lying that he would say yes, because when lying he would want to say no to the first part of the question.

So he is lying that he would say yes, because if he were to lie, he would say no. He’s lying about lying. Which than turns to truth.

If you ask a knave “If I ask you are you a knave, will you answer yes?”

The knave would lie to you about his initial answer (no), and tell you that he would say yes (which is a lie, he would say no). So by asking that type of question you would get the same answer as if he was telling the truth.

If the commoner lies and says “no”, than in the next question “If I were to ask you if you were telling the truth in the first question, would you answer “yes”., he would say no if he decides to tell the truth. If he decides to tell a lie, he would want to lie about that he told the truth before and want to answer yes. But he wants to lie to the second part of the question “would you answer “yes”” so he would answer “no”, because by saying “yes” he would not be lying to you.