Jump to content
BrainDen.com - Brain Teasers
  • 0

Liars and truthtellers one again


harey
 Share

Question

On an island, every statement is true if the islander is aged less than L and false if he is at least L years old. Find their ages.

[1] A: "B is more than 20 years old."
[2] B: "C is more than 18 years old."
[3] C: "D is less than 22 years old."
[4] D: "E is not 17 years old."
[5] E: "A is more than 21 years old."
[6] A: "D is more than 16 years old."
[7] B: "E is less than 20 years old."
[8] C: "A is 19 years old."
[9] D: "B is 20 years old."
[A] E: "C is less than 18 years old."

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 1

Giving it a shot at writing with different notation

Spoiler

I'll use [#] notation to refer to the numbered statements given in the problem, and use {#} notation to refer to facts that can be logically deduced.

The statements from the problem are
[1] A: B >20.
[2] B: C >18.
[3] C: D <22.
[4] D: E isn't 17.
[5] E: A >21.
[6] A: D >16.
[7] B: E <20.
[8] C: A is 19.
[9] D: B is 20.
[A] E: C <18.

We can deduce the following:
{1} A and D can't both be truthful because of [1] A: B >20 and [9] D: B is 20.
{2} A and C can't both be liars because of [3] C: D <22 and [6] A: D >16.
{3} B and E can't both be truthful because of [2] B: C >18 and [A] E: C <18.
{4} B and D can't both be liars because of [4] D: E isn't 17 and [7] B: E <20.
{5} C and E can't both be truthful because of [5] E: A >21 and [8] C: A is 19.

Suppose E is truthful.
Deduction {3} proves B is a liar, and {4} proves D is truthful.
Deduction {5} proves C is a liar, and {2} proves A is truthful.
But A and D both being truthful conflicts with {1}. So we would reach a contradiction if E were truthful and conclude that
{6} E is a liar.

Given {6} E is a liar, suppose A is truthful.
Deduction {1} proves D is a liar, and {4} proves B is truthful.
But then [7] B (truthful): E (liar) <20 and [1] A (truthful): B (truthful) >20 means that the liars aren't always older than the truthful. So this scenario where A is truthful doesn't work and we can conclude
{7} A is a liar.

Given {6} and {7}, E and A are both liars (just using the facts from this point on, no additional suppositions)
Deduction {2} proves that
{8} C is truthful.
Statement [8] C (truthful): A is 19 proves
{9} A is 19.
Statement [A] E (liar): C <18 proves that
{10} C is at least 18.
But since {9} A is 19 and {7} A is a liar while {8} C is truthful and {10} C is at least 18, we know that
{11} C is exactly 18, and
{12} The border between truthful and lying ages is 18-19.
Statement [6] A (liar): D >16 proves that
{13} D is no older than 16 (this can be written D <17), and because of {12} we know that
{14} D is truthful.
Statement [9] D (truthful): B is 20 proves that
{15} B is 20, and because of {12} we know that
{16} B is a liar.
Statement [7] B (liar): E <20 proves
{17} E is at least 20 (this can be written E >19).

Overall, we have the following:
A (19): liar
B (20): liar
C (18): truthful
D (<17): truthful
E (>19): liar

 

Link to comment
Share on other sites

  • 0

Having to actually write it out in such a way that others can read and follow it does wonders for imposing clarity...

Spoiler

Suppose E is young enough to always be truthful.
E (truthful) says C <18 while B says C >18, so B is a liar.
B (liar) says E <20 (so E must be >19) while D says E is not 17, so D is truthful.
E (truthful) says A >21 while C says A is 19, so C is a liar.
C (liar) says D <22 (so D must be >21) while A says D >16, so A must be truthful.
We have A, D, and E as truthful while B and C are liars.
But D (truthful) said B (liar) is 20, and E (truthful) said A (truthful) >21, so you can't have a situation where the truth-tellers are all younger than the liars.
Therefore the initial supposition leads to a contradiction, so E cannot be truthful.

Given that E is a liar, suppose A is truthful.
A (truthful) says B >20 while D says B is 20, so D must be a liar.
D (liar) says E is not 17, so E must be 17.
B said E <20 and E is 17, so B must be truthful.
However, E (liar) being 17 while A (truthful) says B (truthful) >20 renders this scenario impossible.
Therefore, A cannot be truthful.

Given and A and E are both liars:
A (liar) says D >16 (so D must be <17) while C says D <22, so C must be truthful.
C (truthful) said A is 19, and E (liar) said C <18, so C must be 18 (and anyone older than that is a liar).
Since we know D <17, D must be truthful.
D (truthful) said B is 20, and B is therefore a liar.

That last scenario all works out, and you have
A (liar) is 19
B (liar) is 20
C (truthful) is 18
D (truthful) is <17
E (liar) is >19 (based on B's lying statement)

 

Edited by plasmid
Link to comment
Share on other sites

  • 0

Do not worry, on my first attempt, I did not manage it to write it clearly enough that I myself could read and understand it. When you asked your question, I checked my solution written about a year ago and wondered whether it would not be easier to start from the beginning. I have rewritten it and found a kind of notation:

 

Spoiler

My idea was to separate them in two groups of same of same confidence and then assume one group are liars and the other tell true. It worked only partly, but it worked:

01 [5] E: "A is more than 21 years old."
02 [8] C: "A is 19 years old."                     => (a1) E=!C

04 [2] B: "C is more than 18 years old."
05 [A] E: "C is less than 18 years old."           => (b1) E=!B
06
07 Assume (c1) E=true:
08        (d1) B=!E=liar
09        (e1) C=!E=liar

11        Reverse what B states:
12        [2] B: "C<=18" => C=true     (The younger is true,
13        [7] B: "E>20"  => E=liar      the older is false.)
14        Contradicts both assumption and e1, so:

16 (c2) E=false
17 (d2) B=!E=true
18 (e2) C=!E=true

20 Rewriting as true statements:
21 [ 2] B: "C>18"
22 [ 3] C: "D<22"
23 [!5] E: "A<=21"
24 [ 7] B: "E<20"
25 [ 8] C: "A=19"
26 [!A] E: "C>=18"

28 (L1): [7] and (c2): L<20

30 [1] A: "B>20" translates B=liar, contradicts (L1) => A=liar
31 [9] D: "B=20" translates B=liar, contradicts (L1) => D=liar

33 [L1] [8]: L<20 and L>=19 -> L=19.

35 A=liar, 19 [8]
36 B=true, B<=L
37 C=true, C=L [2], [A]
38 D=liar, L<D<22 [3]
39 E=liar, L=19 [8]

We both excluded the possibility E being true, but considered different implications.

You will certainly get the best answer. but maybe you are wanting to rewrite it using my notation (and possibly improve it). I thought about a chart, but too much work.

 

P.S. Can someone change in the title ONE in ONCE?

Thanks in advance.

Edited by harey
Link to comment
Share on other sites

  • 0

Comment on your answer

Spoiler

04 [2] B: "C is more than 18 years old."
05 [A] E: "C is less than 18 years old."           => (b1) E=!B

That's not necessarily true... you could have E=B if C is exactly 18 years old, which is what I had in my answer. And the overall solution runs into a problem: A (liar) is 19 years old, but B (truthful) said C (truthful) is >18. (I'm assuming the OP doesn't want you to invoke finer granularity than integer ages and say that C's birthday is earlier than A's so they can both be 19 but with different truthiness.)

 

Link to comment
Share on other sites

  • 0
16 hours ago, plasmid said:

Comment on your answer

  Hide contents

04 [2] B: "C is more than 18 years old."
05 [A] E: "C is less than 18 years old."           => (b1) E=!B

That's not necessarily true... you could have E=B if C is exactly 18 years old, which is what I had in my answer. And the overall solution runs into a problem: A (liar) is 19 years old, but B (truthful) said C (truthful) is >18. (I'm assuming the OP doesn't want you to invoke finer granularity than integer ages and say that C's birthday is earlier than A's so they can both be 19 but with different truthiness.)

 

 

17 hours ago, plasmid said:

Comment on your answer

  Hide contents

04 [2] B: "C is more than 18 years old."
05 [A] E: "C is less than 18 years old."           => (b1) E=!B

That's not necessarily true... you could have E=B if C is exactly 18 years old, which is what I had in my answer. And the overall solution runs into a problem: A (liar) is 19 years old, but B (truthful) said C (truthful) is >18. (I'm assuming the OP doesn't want you to invoke finer granularity than integer ages and say that C's birthday is earlier than A's so they can both be 19 but with different truthiness.)

 

Thanks for finding the problem. I was so sure that if X contradicts Y, they must be in different categories - it did not occur to me that can be both liars.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...