Are you a liar?

Logic Level 2

A party has 100 people who are either liars or truth tellers.

Liars always lie, and truth tellers always speak the truth.

After the party is over, you ask each person, "How many truth tellers did you shake hands with?"

Each person gave a different answer, ranging from 0 to 99 (the answers were 0, 1, 2, ... , 98, 99).

How many liars were at the party?


The answer is 99.

This section requires Javascript.
You are seeing this because something didn't load right. We suggest you, (a) try refreshing the page, (b) enabling javascript if it is disabled on your browser and, finally, (c) loading the non-javascript version of this page . We're sorry about the hassle.

2 solutions

Prince Loomba
Aug 29, 2016

The puzzle seems impossible because you do not know how many people each person shook hands with, and you do not know how many people are liars. But amazingly you can deduce the number of liars based on the answers everyone gave!

There are two keys to the puzzle. First, handshakes take place in pairs so if A shook B’s hand then both would have to count the handshake. Second, a truth teller always tells the truth, so if we can identify a logically false statement, then the person has to be a liar.

We will say person 99 is the person who said he shook hands with 99 truth tellers, person 98 is the person who said he shook hands with 98 truth tellers, and so on, so person 1 said he shook hands with 1 truth teller and person 0 said he shook hands with 0 truth tellers.

Start with person 99. If person 99 is a truth teller, then person 99 must have shaken hands with everyone else at the party, and everyone else must be a truth teller. This implies person 0, who said he shook hands with 0 truth tellers, would also have to a truth teller. So that 0 never shook hands with a truth teller, either 0 and 99 never shook hands (making 99 a liar), or 0 shook hands only with liars (also making 99 a liar). In either case, it’s impossible that 99 is a truth teller. Therefore person 99 is a liar.

We can use this information to figure out the next logical deduction.

Consider person 98. Since we know 99 is a liar, if person 98 is a truth teller, then 98 must have shaken hands with every person from 0 to 97, and persons 0 to 97 must be truth tellers. This implies 0 is a truth teller. So that 0 never shook hands with a truth teller, either 0 and 98 never shook hands (making 98 a liar), or 0 shook hands only with liars (also making 98 a liar). In either case, it’s impossible that 98 is a truth teller. Therefore person 98 is a liar.

We can proceed by to reason person 97 is a liar, then person 96 is a liar, and so on, all the way to proving person 1 is also a liar.

What about person 0? We have concluded everyone else at the party is a liar, so person 0 necessarily shook hands with only liars and 0 truth tellers. Either person 0 did not shake hands with anyone, or person 0 did shake hands with people who were liars. In either case, person 0 is telling the truth.

The party has 99 liars (persons 1, 2, …, 98, 99) and exactly 1 truth teller (person 0).

If there are k k truth tellers then there would have to be k k equal answers, since all the answer are differents this implies that there is only one truth teller.

Now why can it be 0 0 truth tellers?

Assume there are 0 0 truth tellers, then the person who answer 0 0 would be telling the truth, and that contradicts our assumption that there are 0 0 truth tellers

I'm assuming, like you probably did, that this question should include that each person shook hands with everyone else.

Sean Silagan - 4 years, 9 months ago

0 pending reports

×

Problem Loading...

Note Loading...

Set Loading...