Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

Is it possible to solve this problem:

A prince wish to marry a princess. There are 3 princesses, one is young, one is a little older and one is old. The prince is able to tell the princesses apart. One of the princesses always tells the truth, one never tells the truth and one sometimes tells the truth and sometimes not.

The prince only wish to marry a princess whom he can trust. Therefore it must be the princess that always tells the truth or the princess that never tells the truth (he can just negate her answers for the rest of their marriage).

Before he chooses the princess he wish to marry, he can ask one and only one princess a single question. She must only answer the question by yes or no.

Which question must he ask to be sure he marries one of the right princesses?

Edit: I was not expecting the question "who is more truthful", so consider this change of rules. Suppose we remove the "random princess", and instead insert an "evil princess". The evil princess can choose her strategy for answering, after she has seen which princess we are asking. So asking "Who is more truthful", does not make sense anymore, since the evil princess could choose to answer correct to every question.

share|improve this question
    
Yes it is possible (certainly if he does not mind not knowing whether the princess he chooses is the always truthful or never truthful). It has to be a question which they cannot all answer the same way. What have you tried? –  Henry Mar 27 '11 at 21:41
7  
Hehe, "he can just negate her answers for the rest of their marriage". –  George Lowther Mar 27 '11 at 21:44
1  
But, I'd say, ask the oldest one if the youngest is more truthful than the middle one. If the answer is no, marry the middle one, otherwise marry the youngest. –  George Lowther Mar 27 '11 at 21:55
1  
@George, @utdiscant: I don't think that works. What if the oldest one is the liar and the youngest is the truthful one? Won't you get no as an answer and thus end up marrying the one you don't want to marry? –  t.b. Mar 27 '11 at 22:16
1  
@Theo: Yes, I got that the wrong way round. The correct statement should have been "If the answer is no, marry the youngest, otherwise marry the middle one". –  George Lowther Mar 27 '11 at 22:25

1 Answer 1

up vote 11 down vote accepted

Ask the middle one if the youngest is more truthful than the eldest. If the answer is "no" then marry the youngest, otherwise marry the eldest.

That way, if the middle one is the liar, he is guaranteed to marry the most truthful of the remaining two, which is the 100% truthful princess. If the middle one is the truthful one, then he is guaranteed to marry the least truthful of the remaining two, who is the habitual liar. If the middle one sometimes tells the truth and sometimes lies then it doesn't matter which of the other two he marries (for the purposes of this riddle...).

This is just the answer I gave in the comment above, removing the mistake pointed out by Theo Buehler (and the implicit ageism in assuming the prince would rather marry one of the younger two).

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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