三个学生猜数字

来源:互联网 发布:爱微游一样的软件 编辑:程序博客网 时间:2024/05/17 23:01

一个教授逻辑学的教授,有三个学生,而且三个学生均非常聪明! 一天教授给他们出了一个题,教授在每个人脑门上贴了一张纸条并告诉他们,每个人的纸条上都写了一个正整数,且某两个数的和等于第三个!(每个人可以看见另两个数,但看不见自己的) 教授问第一个学生:你能猜出自己的数吗?回答:不能 问第二个,不能 第三个,不能 再问第一个,不能 第二个,不能 第三个:我猜出来了,是144! 教授很满意的笑了。 请问您能猜出另外两个人的数吗? 请问: 第三个人是怎么猜出来的?你是怎么猜出另外两个数的?



为什么之前发了一遍给我吞了?????重发一遍


搬运一份好的解法:

链接(非原文出处):http://www.genshuixue.com/i-gmat/p/338534

作者:曾加

Excited!!!
这真是一个十分有趣,但细究却十分复杂的问题。

先说本题的正解,一共5组:
(36,108)(108,36)(32,112)(64,80)(54,90)

很不可思议吧?
先说为什么对,再说怎么解。

【1】基础:为什么这些是正解?

假设 3 个人分别是 A,B,C;

以(36,108)为例;

大前提: 在第一轮中,所有人都知道了,自己的答案只可能是两个数之一;

所需 条件 R:排除掉其中一个(就一定能猜到另一个);

在第二轮中,C 运用了 两层逻辑

前提:自己是 72 或 144;

假设 1:自己是 72;
推论 1:B 应该是 36 或 108;
——假设 2:假如 B 是 36;
————推论 2:C 应该能判断出自己是 72;
————已知 1:C 第一轮没有猜出;
——故假设2 不成立! 
——推论 3:B 应该 在第二轮 排除 36 (条件 R 达成);
——已知 2:B 没有在第二轮猜出;
故假设1 不成立!

条件R 达成,C 成功猜出!

(36,108) 是一个比较简单的情况,仅仅用了两层逻辑。但是其他解其实就没有那么显然了,可能是三层、四层甚至五层逻辑……(逻辑学教授恐怕也会被绕晕吧?)

所以请看第二部分:如何得到正解。

********************

【2】进阶:如何得到正解?

但是我们之前并不知道答案,那如何推得答案呢?

我的方法是,从逻辑上,一层层死推,不要放过任何一个线索;

本题一共 5 个条件,即 前 5 次大家都不知道正解;
还有一个隐藏条件(即真正的大前提):0 不是正整数;
总计6个条件;

接下来,就是放大招的时刻了!

说明:
  1. 下面,是每一个轮的每一个回合中,某方恰能猜出来的所有必要条件;
  2. 在下面的推导过程中,所有小括号()内数字比例都是 A:B:C;
  3. 中括号【】内是指该轮猜出运用的条件;

【0】: 0不是正整数(所以若看到另外两个数字相同,则自己必然是它们的和);

第 1 轮

【1.1】A 猜出
  1. B 和 C 相同 (2:1:1)【0】;

【1.2】B 猜出
  1. A 和 C 相同(1:2:1) 【0】
  2. A 是 C 的 2 倍(2:3:1)【1.1】;
(理解:B 看到 A:C=2:1,但是 A 没有猜出,所以 B 不是1,而是 3,这就是排除错误选项的方法,而这个逻辑是后面所有推论的核心逻辑:细究前面的人没有猜出的原因)

【1.3】C 猜出
  1. A 和 B 相同 (1:1:2) 【0】
  2. A 是 B 的 2 倍 (2:1:3) 【1.1】
  3. B 是 A 的 2 倍 (1:2:3)【1.2】
  4. B 比 A 多 50%(2:3:5)【1.2】

第 2 轮:

(从此轮开始,每一个人的推导,都是以前两个人未猜出的表现为依据,所以每种情况的解的个数是前两个之和)


【2.1】A 猜出
  1. (3:2:1)【1.2】
  2. (4:3:1)【1.2】
  3. (3:1:2)【1.3】
  4. (4:1:3)【1.3】
  5. (5:2:3)【1.3】
  6. (8:3:5)【1.3】

【2.2】B 猜出
  1. (1:3:2)【1.3】
  2. (2:5:3)【1.3】
  3. (1:4:3)【1.3】
  4. (2:7:5)【1.3】
  5. (3:4:1)【2.1】
  6. (4:5:1)【2.1】
  7. (3:5:2)【2.1】
  8. (4:7:3)【2.1】
  9. (5:8:3)【2.1】
  10. (8:13:5)【2.1】

【2.3】 C 猜出 (即本题)
  1. (3:2:5)【2.1】
  2. (4:3:7)【2.1】
  3. (3:1:4)【2.1】
  4. (4:1:5)【2.1】
  5. (5:2:7)【2.1】
  6. (8:3:11)【2.1】
  7. (1:3:4)【2.2】
  8. (2:5:7)【2.2】
  9. (1:4:5)【2.2】
  10. (2:7:9)【2.2】
  11. (3:4:7)【2.2】
  12. (4:5:9)【2.2】
  13. (3:5:8)【2.2】
  14. (4:7:11)【2.2】
  15. (5:8:13)【2.2】
  16. (8:13:21)【2.2】

附上一张直观的图:


以上一共 16 组解,但由于本题要求正整数,所以数字比例中 C 必须是 144 的约数
即(3:1:4),(1:3,4),(2:7:9),(4:5:9),(3:5:8)

综上,本题共有 5 组解:

(36,108)(108,36)(32,112)(64,80)(54,90)

幸好只有 两轮,如果条件再多一点,恐怕我们就要动用计算机啦!
(嗯,动态规划嘛,可以当作算法题)

顺便,这里也给出 第 n 次询问能等猜出答案的解的个数 a(n) 的递推公式: 
a(1)=1,a(2)=2,a(3)=4,
a(n)=a(n-1)+a(n-2),(n\geq 4)

求:通项公式(这个是高中数学诶):

我算出来的结果是:
a(n)=\frac{\sqrt{5}+3 }{\sqrt{5} }(\frac{1+\sqrt{5} }{2} )^{n-2} + \frac{\sqrt{5}-3 }{\sqrt{5} }(\frac{1-\sqrt{5} }{2} )^{n-2} ,n>1

这个就是大名鼎鼎的 斐波那契数列 的变体,
前 10 项分别是:1,2,4,6,10,16,26,42,68,110……

另外,我还发现了一个重要结论:
无论初始的三个数是多少,在有限轮内必然会有人猜出;

这个问题就交给大家探索啦;

********************

最后,我有一个小小的猜测:
这道题目居然出现在【逻辑】而不是【数学】或【算法】中,那么出这道题的人,很可能并没有做对这道题。一个可能的情况是,他只发现了(36,108)这一组解。

因为,逻辑学教授早已阵亡。

********************

【转载请注明作者及链接地址,商业转载需征求我同意并商讨稿费,谢谢理解。】

另,做个广告:
欢迎关注我的知乎专栏:看!你身边有一只数学! - 知乎专栏
2015-03-19




重点在于通过第一轮奠定整个解法的基础,即逆向思维通过确定每个人可以猜出结果的假设,来给下一个猜测者增加排除条件,从第二轮开始,轮数多的时候就只能用动态规划了。



原创粉丝点击