三个学生猜数字
来源:互联网 发布:爱微游一样的软件 编辑:程序博客网 时间: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个条件;
接下来,就是放大招的时刻了!
说明:
【0】: 0不是正整数(所以若看到另外两个数字相同,则自己必然是它们的和);
第 1 轮:
【1.1】A 猜出
【1.2】B 猜出
【1.3】C 猜出
第 2 轮:
(从此轮开始,每一个人的推导,都是以前两个人未猜出的表现为依据,所以每种情况的解的个数是前两个之和)
【2.1】A 猜出
【2.2】B 猜出
【2.3】 C 猜出 (即本题)
附上一张直观的图:
以上一共 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) 的递推公式:
求:通项公式(这个是高中数学诶):
我算出来的结果是:
这个就是大名鼎鼎的 斐波那契数列 的变体,
前 10 项分别是:1,2,4,6,10,16,26,42,68,110……
另外,我还发现了一个重要结论:
无论初始的三个数是多少,在有限轮内必然会有人猜出;
这个问题就交给大家探索啦;
********************
最后,我有一个小小的猜测:
这道题目居然出现在【逻辑】而不是【数学】或【算法】中,那么出这道题的人,很可能并没有做对这道题。一个可能的情况是,他只发现了(36,108)这一组解。
因为,逻辑学教授早已阵亡。
********************
【转载请注明作者及链接地址,商业转载需征求我同意并商讨稿费,谢谢理解。】
另,做个广告:
欢迎关注我的知乎专栏:看!你身边有一只数学! - 知乎专栏
这真是一个十分有趣,但细究却十分复杂的问题。
先说本题的正解,一共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个条件;
接下来,就是放大招的时刻了!
说明:
- 下面,是每一个轮的每一个回合中,某方恰能猜出来的所有必要条件;
- 在下面的推导过程中,所有小括号()内数字比例都是 A:B:C;
- 中括号【】内是指该轮猜出运用的条件;
【0】: 0不是正整数(所以若看到另外两个数字相同,则自己必然是它们的和);
第 1 轮:
【1.1】A 猜出
- B 和 C 相同 (2:1:1)【0】;
【1.2】B 猜出
- A 和 C 相同(1:2:1) 【0】
- A 是 C 的 2 倍(2:3:1)【1.1】;
【1.3】C 猜出
- A 和 B 相同 (1:1:2) 【0】
- A 是 B 的 2 倍 (2:1:3) 【1.1】
- B 是 A 的 2 倍 (1:2:3)【1.2】
- B 比 A 多 50%(2:3:5)【1.2】
第 2 轮:
(从此轮开始,每一个人的推导,都是以前两个人未猜出的表现为依据,所以每种情况的解的个数是前两个之和)
【2.1】A 猜出
- (3:2:1)【1.2】
- (4:3:1)【1.2】
- (3:1:2)【1.3】
- (4:1:3)【1.3】
- (5:2:3)【1.3】
- (8:3:5)【1.3】
【2.2】B 猜出
- (1:3:2)【1.3】
- (2:5:3)【1.3】
- (1:4:3)【1.3】
- (2:7:5)【1.3】
- (3:4:1)【2.1】
- (4:5:1)【2.1】
- (3:5:2)【2.1】
- (4:7:3)【2.1】
- (5:8:3)【2.1】
- (8:13:5)【2.1】
【2.3】 C 猜出 (即本题)
- (3:2:5)【2.1】
- (4:3:7)【2.1】
- (3:1:4)【2.1】
- (4:1:5)【2.1】
- (5:2:7)【2.1】
- (8:3:11)【2.1】
- (1:3:4)【2.2】
- (2:5:7)【2.2】
- (1:4:5)【2.2】
- (2:7:9)【2.2】
- (3:4:7)【2.2】
- (4:5:9)【2.2】
- (3:5:8)【2.2】
- (4:7:11)【2.2】
- (5:8:13)【2.2】
- (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) 的递推公式:
求:通项公式(这个是高中数学诶):
我算出来的结果是:
这个就是大名鼎鼎的 斐波那契数列 的变体,
前 10 项分别是:1,2,4,6,10,16,26,42,68,110……
另外,我还发现了一个重要结论:
无论初始的三个数是多少,在有限轮内必然会有人猜出;
这个问题就交给大家探索啦;
********************
最后,我有一个小小的猜测:
这道题目居然出现在【逻辑】而不是【数学】或【算法】中,那么出这道题的人,很可能并没有做对这道题。一个可能的情况是,他只发现了(36,108)这一组解。
因为,逻辑学教授早已阵亡。
********************
【转载请注明作者及链接地址,商业转载需征求我同意并商讨稿费,谢谢理解。】
另,做个广告:
欢迎关注我的知乎专栏:看!你身边有一只数学! - 知乎专栏
2015-03-19
重点在于通过第一轮奠定整个解法的基础,即逆向思维通过确定每个人可以猜出结果的假设,来给下一个猜测者增加排除条件,从第二轮开始,轮数多的时候就只能用动态规划了。
阅读全文
0 0
- 三个学生猜数字
- 三个数字
- 取三个数字最大值
- coj 1214: 三个数字
- CSU - 1214 三个数字
- ACM:B: 三个数字
- 三个学生四门课程的问题
- 建立三个学生的单链表试试感觉
- 三个学生2个学期成绩输出
- 跨专业考研学生的三个问题
- 输入三个数字,求三个数字中最大的一个
- 数字字符串,每三个数字加上逗号
- 输入三个数字,比较大小
- 三个数字的中间值
- 正则匹配连续三个数字
- 16-三个数字比较大小
- 一个数组中除了三个数字,其余数字都出现两次,求出这三个数字
- asp数字分页示例共三个
- SVG概念
- POJ 1787 Charlie's Change 笔记
- windows下emacs的中文字体设置
- 【DP】【单调队列】17.6.3 上网 题解
- Android studio创建模拟器报错“Enable VT-x in your Bios Security Settings”
- 三个学生猜数字
- SDUT 3931 N!
- 线段树详解
- 向俞敏洪学习
- directors——toolofna
- 1228: 大数阶乘
- 冒泡排序
- ajax和asp判断用户登录
- 安装和使用hive时遇到的一些问题