关于一道“智力题”的探讨

【原题出处】 http://topic.csdn.net/u/20111114/00/7d943d10-9e4f-43c7-95dd-3bc5c18850e7.html

【题目原文】

小明和小强都是张老师的学生,张老师的生日是某月某日,2人都不知道张老师的生日。 但张老师告诉他们他的生日是下列10组中的某一天:

3月4日
3月5日
3月8日
4日6月
6月7日
9月1日
9月5日
12月1日
12月2日
12月8日

张老师把月份告诉了小明,把日子告诉了小强,张老师问他们知道他的生日是那一天吗?

小明说:如果我不知道的话,小强肯定也不知道。

小强说:本来我也不知道,但是现在我知道了。

小明说:哦,那我也知道了。

请根据以上对话推断出张老师生日是哪一天?

【分析】这题目其实就本身而言尚不是一个严格定义的数学问题,不严格的数学问题这个博客是不负责讨论的。但是它经过一些限定能够变成数学问题,而且是很好的数学问题,也是很难的数学问题。据我估计,作为数学问题,它应该隶属于博弈论。

【已有答案】论坛楼主在18楼提供的一个答案是基本说得过去的。很简洁,大致就是设计这题的人构造这些数字的意图体现。如下:

通过小明的第一句话,可以得知,仅知道日期是没有用的。这样就排除了6月和12月的可能。
通过小强的第二句话,确定了日期是1、4、8日中的一天。
通过第三句话,确定了是9月1日。

【尝试的限定和建模】

凡是有小明的故事都让人冷冷地感觉恐怖。这个问题也一样。其实到目前为止我对这个问题还没有很明确的想法。但基本判断它是一种特殊的博弈论问题,同类问题还包括像棋牌游戏的一些解答,比如杀人游戏里局面的发展。而这类问题的共同特征是:两个或以上的工作体,以一定游戏规则进行互动,在整个过程中,假设这些工作体都是理性的,且具有完整的数学和逻辑能力,基于在交互步骤中它们得到的信息以及对游戏的整体规则理解进行活动,解题者要演绎这些工作体在这个过程中的行为和结果。这就是说(也是这类问题恐怖的地方)这里的工作体和解题者(具有数学知识解决这个数学问题)都是完全平等的(唯一缺陷,就是解题者还未必具有完善高效的数学能力能解对,那是解题者自行出局——解不出这个问题,或根本对这个问题就没概念);一个特定的约束是,工作体需要根据信息作出行为,而这个行为必须具备充分性(充分演绎)和最优性(根据游戏规则设定各方要达成目的的要求的选择最佳的方式)。其实这个表述还是很模糊的,有时候只有根据具体的问题来加以进一步的规定。当然如果假设工作体是有缺陷的(误判,延迟,不确定因素等等),那又是另一类问题了,这个研究可能具有更大的实用价值(大到例如研究国与国之间的zz经济关系等),但难度在某种意义上进一步加大。但所有这些问题的共同特点是任意一方要将其他方的考虑(包括其他方对他的考虑)和全局纳入到他自己的筹划中。

然后根据题设,可以假想这个设定是,小明和小张交替表述,表述格式只能是以下两种之一:

1. “如果A知道(或不知道)结果,则B知道(或不知道)结果”

2. “我已经知道结果”

除非是2,否则说明此人不知道结果。

然后有个关键的初始条件定义,究竟谁先讲话,或如何规定。这里比较合理的定义是,如果两人中任何一人,能够做出上述1型或2型的话,就由它讲话。(可以论证哪些情况下会有冲突,但如此定义下,冲突可能我们并不关心)

另一个规定是每个人都必须(也必然)根据他了解的事实说真话,而且能讲的话必须要讲。

整个步骤进行到双方都没话说或说过2为止。

那么在这个问题中,我们就能描述这个过程为,小强一开始没办法说1或2,而小明能说1,于是就说了他的一句话;第二步,小强根据小明说的话,说了2;第三步,小明再根据小强说了2。

再对这个步骤本身进行一个回顾。我们发现这个流程规则的必要性,因为小明说的1(也就是所有1)是建立在2的基础上(这个流程)的,因为显然如果小强不说2的话,小明可能也就无从知道结果,于是尽管小强知道结果但藏在肚子里(不说出他知道这个事实),小明也未必知道结果了,于是就发生了矛盾(逻辑矛盾在一般数学问题中是不允许的),也就不会有小明这第一句话。

【进一步分析】暂不讨论上述解法在这个语境下的正确性,很可能还是正确的,但在什么条件下正确?我们还会问这样一个题是不是有多解?继续讨论分析一下。

一定要记住的是,作为这类问题的一个特征,这里所作的所有数学讨论,本身自洽地也是小明和小强的在他们自己脑子里讨论(的全部或一部分,且完全一致不矛盾),而且始终要谦卑地认为,他们不会比我们做得少做得差(而事实上应该是完全一样,是完美的);他们和我们是平等的,他们也是在解同样的数学问题,要给出一致的的答案。于是,这样小明和小强也会在脑子里逐一分析这些日期项,包括诸如哪些日期项会出现“小明先说1,然后小强说2,……”这样的结果,也包括其他项会发生完整的过程,因为这一切都是静态的,一切过程都是预先定好的。这样一来,对于小明,当他拿到一个月份和这些日期项(出现小明1,小强2,小明2)有交集,那必然地,他拿得的这个月份都应该都具有“小明先说1”这个属性。而对于小强,他拿得的日子可能比较复杂,可能对应的某些月份是小明先说,有些是他先说……。从这个意义上讲6月和12月的确可以一开始就排除,因为他们不具有这个单纯的(小明总先说1的)属性。

但是这里进一步分析发现,即使用这样的1/2型表述法,问题还是过于复杂(如果要讨论和规定估计要设计比较高级复杂点的数学工具),而且表述仍旧有很多不完备的地方。另外这个设计有违上述提出的这类问题作为数学问题讨论的要旨,因为小明这第一句话,从字面理解,模糊了两人行为的宗旨(小明和小强的工作关系是竞争关系,还是合作关系还是兼而有之),从话语中看似暗含竞争关系;而根据这个背景的不同,理解如存歧义,小强领会这句话的态度也不同的,结果是会不同的,这里可能还涉及信息论的问题,因为小明和小强之间的交互是一个通信过程。个人尝试了一个合理的简化,将他们的关系退化和离散化到不具备这种复杂人际关系,约束到一个简单的求解方案;这样问题性质可能有不同,但看上去更简单,数学上更明确些。

假设通话进行规则是:由第三方(可以就是张老师)一轮一轮地调查,而每一轮调查对小明和小强同时独立进行,而两人能够说的只是诚实公开回答“知道”或是“不知道”。这在现实中也是可操作的,如果知道,那么只要写下来,待游戏结束后复查。于是按照这个规则,可以比较容易列出对各个可能日期两人的每次讯问结果。其中(x, y)表示两人的状态,带斜杠的数字表示此轮不知道,而数字是猜测对方的数字;A表示已经推算出结果,并报告知道;F表示此人已经结束(已报告结果)。这个过程的推演逻辑上不困难。


3,4  -> (4/5/8, 3/6) -> (4/5/8, 3/6) -> (4/5/8, A) -> (A, F)
3,5  -> (4/5/8, 3/9) -> (4/5/8, 3/9) -> (4/5/8, 3/9) -> (5/8,3/9) -> ...
3,8  -> (4/5/8, 3/12) -> (4/5/8, 3/12) -> (4/5/8, 3/12) -> (5/8,3/12) -> ...

6,4  -> (4/7, 3/6) -> (A, 3/6) -> (F, A)
6,7  -> (4/7, A) -> (A, F)

9,1  -> (1/5, 9/12) -> (1/5, 9/12) -> ...
9,5  -> (1/5, 3/9) -> (1/5, 3/9) -> ...

12,1 -> (1/2/8, 9/12) -> (1/2/8, 9/12) -> (1/8, 9/12) -> ...
12,2 -> (1/2/8, A) -> (A, F)
12,8 -> (1/2/8, 3/12) -> (1/2/8, 3/12) -> (1/8, 3/12) -> ...

在这个约束条件下,有4个日期是能推算出来的,只是时间早晚;而且这两个人都能得到答案,只是先后不同。而另外6个日期是对两个人而言都无法确知的。这六个情形的主要区别是,小明对问题的不确定性的变化位置(3月在第4次,12月在第3次,9月永远不变化,这里可以看出9月的一些特殊性),这种位置反映了这些日期状况的不对称性。在这个模型中,如果额外允许他们(显然以小明为先导)能够发送(极少量就足够)关于这个特征的消息,就能让他们求解出这答案。所以从这个模型背景来看,小明先导信息投放是可能有助解决问题的。但对于题目中小明的这个特定的描述的合理性则值得商榷。因为这个表述可能表示先后(先知后知),也可能表示一个整体(从结果看两个人对答案的了解情况)。而这个题目的结果看,这个表述显然只是在描述一个整体情况下才不矛盾(因为小强先知,小明后知)。然而当它作为一个整体了以后,小明的这个描述应该应用于所有这些月份都没有矛盾。如果小明会在这些月份都说这话,对小强而言是没有信息量的。这样就依赖于小明在什么时候会发这样一个消息,小强能不能认同这样一个规定。否则即使那个答案中逻辑上如何说得过去,这样的事情最后也不会发生,于是答案也就不能成立。

这个讨论还是很不充分细致,作者水平所限,可能有些重要的有帮助的数学工具没能用到,错误在所难免,希望有识之士能提出意见。但通过这个讨论,可以说对于问题而言,答案如果有,那是唯一的,即9月1日,这是由原楼主的答案提供的逻辑结构决定的。我基本上倾向于认为,这个答案成立是在小明和小强有一个合乎逻辑的(至少关于这个表上9月1日这个特殊选项)默契的结果,加上他们的运气(小明往往运气都不错)/张老师的设计,因为只能在9月1日才能奏效,于是9月1日也成了唯一答案,作为某种程度上的理想假设的结果。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值