返回题库

自指语句:100 句话里有多少句为真

True Statement

专题
Brainteaser / 脑筋急转弯
难度
L4

题目详情

纸上写着 100 句陈述。

  • 第 1 句:在这 100 句中,至多有 0 句为真。
  • 第 2 句:在这 100 句中,至多有 1 句为真。
  • 一般地,第 nn 句:在这 100 句中,至多有 n1n-1 句为真。

问:这 100 句中有多少句为真?

On a sheet of paper, you have 100100 statements written down. The first statement says, "at most 00 of these 100100 statements are true." The second says, "at most 11 of these 100100 statements are true." More generally, the nnth says, "at most n1n - 1 of these 100100 statements are true." How many of the statements are true?

解析

设恰好有 rr 句为真。

那么“至多 n1n-1 句为真”的陈述在且仅在 n1rn-1\ge r(即 nr+1n\ge r+1)时为真。

因此为真的句子数量等于满足 nr+1n\ge r+1 的句子个数,即 100r100-r

一致性要求 100r=r100-r=r,所以 r=50r=50

也可验证:第 51 到第 100 句(声称“至多 50..99 句为真”)都为真,而前 50 句为假。


Original Explanation

We know that the first statement must be false, as if it was true, it would contradict itself that none of the statements are true. Therefore, let's consider the second statement. If it was false, then this implies that at least 22 statements are true. However, the statement after says that at most 22 statements are true. If that were to be true, then that claims exactly 22 statements would be true, of which one is itself. However, every statement that says at most k>2k > 2 statements are true would also be true, causing a logical contradiction. Therefore, the third statement must be false.

The trick here is to notice that for some threshold rr, all the statements saying "at least rr of the statements are true" must be true for everything at least that rr, and false for everything below it. For such an rr, that statement being true implies that both at most and at least rr statements are true, meaning exactly rr statements are true. Namely, there must be 100r100 - r statements that are false and rr statements that are true. To find that threshold rr, we just equate the above, yielding r=50r = 50 statements must be true. We can verify this by seeing that the 5050 statements "at most 50,51,,9950, 51, \dots, 99 statements are true" must be true and other 5050 are false.