三帽子猜数字

一、原题

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

二、解析

  1. 设定三个数值分别用A,B,C表示
  2. 每个人的纸条上都写了一个正整数。所以这三个数都是大于0的
  3. 某两个数的和等于第三个。 可判定对于C存在 A + B = C 或 A - B = C 之一
  4. 第一轮询问的结果可以得到如下关系
角色A得到的信息B得到的信息C得到的信息
A回答时B ≠CB ≠CB ≠C
B回答时B ≠C A≠CB ≠C A≠CB ≠C A≠C
C回答时B ≠C A≠C A≠BB ≠C A≠C A≠BB ≠C A≠C A≠B
  1. 第二轮询问的结果可以得到如下关系
角色A得到的信息B得到的信息C得到的信息
A回答时B ≠2C B≠C/2B ≠2C B≠C/2B ≠2C B≠C/2
B回答时B ≠2C B≠C/2 A≠2C A≠C/2 A≠2B A≠B/2B ≠2C B≠C/2 A≠2C A≠C/2 A≠2B A≠B/2B ≠2C B≠C/2 A≠2C A≠C/2 A≠2B A≠B/2
C回答时144
  1. 由以上条件可知必存在B ≠2C B≠C/2 A≠2C A≠C/2中的某一个使得C能够得到自己的144(即帮助C排除了一个错误答案,即存在某一个不等式对于C来说是“等式”)
    当 A + B = C 被排除时,B = C/2 或 A = C/2 解得 A = B 不符合第一轮结果; B = 2C 或 A = 2C解得 负值。(所以C排除的一定是 A - B = C这种情况)
    当 A - B = C 被排除时,B = C/2 解得 A = 3B ;B = 2C 解得 A = 3B/2; A = C/2 解得负值;A=2C解得B=C与第一轮结果不相符。
    综上所述存在如下两个二元一次等式满足条件
    1) A + B = 144 , A = 3B
    2) A + B = 144, A = 3B/2
    解得两种情况的结果
    1)A: 108, B: 36
    2)A : 86.4, B : 57.6 (与正整数不相符)
    所以最终的答案就是 36,108

三、逆推

假设 A是36,B是108, C是144

  1. 对于A来说, 他心中对自己的预期值是 (36,108,144) 和 (252, 108,144)
  2. 对于B来说, 他心中对自己的预期值是 (36,108,144) 和(36,180,144)
  3. 对于C来说, 他心中对自己的预期值是 (36,108,114) 和 (36,108,72)
    首先在没开始问的时候, 三个人知道的是什么!从上边的六组数里, 我们可以很明白的看到
    A 知道 A ≠ B ≠ C, A ≠ 2B, A ≠ B/2,B ≠ 2C, B ≠ C/2, A ≠ 2C, A ≠ C/2
    B 知道 A ≠ B ≠ C, A ≠ 2B, A ≠ B/2,B ≠ 2C, B ≠ C/2, A ≠ 2C, A ≠ C/2
    C 知道 A ≠ B ≠ C, A ≠ 2B, A ≠ B/2,B ≠ 2C, B ≠ C/2, A ≠ 2C
    所以教授的询问, 对于A和B来说是无意义的, 他们一开始就知道了所有的条件,但是仍然无法排除一个预期值。当两轮询问完成之后,A和B帮助了C补充了一个条件A ≠ C/2,于是C排除了自己的一个预期值,然后C答出了自己头上的数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值