精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2012-01-05
最后修改:2012-01-05
村里有50个人,每个人有一条狗,即有50只狗,这些狗中有病狗(不是传染病),每个人可以看除了自己的狗以外的所有狗,即49只狗。有病的狗一看就知道了,当有人推断出自己的狗是病狗的话则开枪打死自己的狗(当天知道),每人看后不准相互交流!第一天,没有枪响,第二天也没枪响,第三天,听见一阵枪响,请问村里有几只病狗? 这道题我花了两个小时思考,最后答案是此题无解, 看分析。 1·有人说三条: 理由: 这个据说是IBM的面试题,正解如下 (解释:意思是说,如果有1条病狗,那么有一个人不会看到病狗,就是病狗的主人因为不能查看自己的狗,则知道自己的是病狗,简言之:“自己看到了0条,但还存在病狗,那么自己没看的也就是自己的狗,就是病狗”) (解释:意思是说,A知道我看到了一条,却没有按照一条的情况处理,所以我看到的少一条病狗,也就是说我自己的是病狗,,简言之:“自己看到了一条,但是如果只有一条,但实际上有一条以上,那么自己没看的也就是自己的狗,就是病狗”) 3.若有3条病狗,设其主人是A,B,C,第一天A发现B和C的狗是病的,B发现A和C的狗是病的,C发现A和B的狗是病的,如果A,B,C都认为只有2条狗是病的话,那么按照假设2,第二天就会有枪响。然而第二天没有动静,那么A,B,C就会认识到自己的狗也是病的,因此第三天会有枪响,并有3条狗病。 (解释:如果三条病狗,这三条病狗的主人会看到两条病狗,认为理应按照2的情况来处理,则第二天有人开枪杀狗,但是第二天没有人杀狗,则表示不是两条,不是一条,应该是两条以上,蛋是自己看到了两条,所以自己的那条狗是病狗。) 分析原题: 1·每个人可以看除了自己的狗以外的所有狗,表示每个人只能看别人的49条狗,重点是别人,则不知道别人看到自己的狗是有没有病。 2·有病的狗一看就知道了,当有人推断出自己的狗是病狗的话则开枪打死自己的狗(当天知道),表示没有发现病狗就不杀狗,发现病狗就杀狗,并且自己只能杀死自己的狗。 3·每人看后不准相互交流,表示比如A看到了2条病狗,C看到了四条病狗,A不知道C看到了4条病狗。 4·第一天,没有枪响,第二天也没枪响,表示第一条没有人能判断自己的狗是不是病狗,第二天发现别人都不能判断自己的狗是不是病狗。 5·第三天,听见一阵枪响,表示第三天有人判断自己的狗是不是病狗,但是没人知道是不是所有的病狗都死了,好狗都活着。 最重点问题在于: 4和5,表示第一天都看到村子还有病狗,但是不确定自己的是不是病狗,于是都回家等着没有看到病狗的人杀死自己的狗。 第一天没有枪声,这样存如下结果: 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-01-07
IBM雄起,这问题,哎,残害多少程序员的前途
|
|
返回顶楼 | |
发表时间:2012-01-07
第几天有枪声,就表明有几条病狗,其实逻辑还是比较简单和NB的~~
|
|
返回顶楼 | |
发表时间:2012-01-07
应该是三条吧,假设有四条,主人分别为A,B,C,D,每人都看见了三条病狗,前两天分析都对,关键是第三天,如果每一个主人都认为是其他三人没有分辨出自己的狗是病狗,那么第三天不应该有枪声吧,而是应该第四天,比如A认为,自己的不是病狗,之所以前天没枪声,是因为B,C,D三个人没有发现自己的是病狗,只有当第三天也没有枪声,才知道自己的狗也是病狗。所以应该是第几天有枪声就是有几条狗
|
|
返回顶楼 | |
发表时间:2012-01-08
按照这个题目给出,我立刻就告诉你无解,并且,也没有办法用合理逻辑推论。
假设,我是50人中的一个人,我就算看到其他49条狗都病了,但是,主人之间不能交流,我一样推断不出来,或者说,我可以一样相信我的那条狗是最幸运的那个。 |
|
返回顶楼 | |
发表时间:2012-01-08
还有,因为缺少条件,如果说是每一天只能一个主人看所有的其他49条狗,那么就好推断一些。不然这种题目本身就属于死循环的逻辑。
|
|
返回顶楼 | |
发表时间:2012-01-08
其实人家出这个题只是看你有没有想法,和逻辑思维敏感程度。不一定要答对的。只要你能有自己的分析,并且有自己的根据就可以了。
|
|
返回顶楼 | |
发表时间:2012-01-09
lonelybug 写道 按照这个题目给出,我立刻就告诉你无解,并且,也没有办法用合理逻辑推论。
假设,我是50人中的一个人,我就算看到其他49条狗都病了,但是,主人之间不能交流,我一样推断不出来,或者说,我可以一样相信我的那条狗是最幸运的那个。 如果你看到其他49条狗都病了,又知道“病狗至少有50条”,你就能推断出来。 建议多研究一下楼主的“标准答案”。 |
|
返回顶楼 | |
发表时间:2012-01-09
楼主主流没把话讲完啊
|
|
返回顶楼 | |
发表时间:2012-01-09
seedjyh 写道 lonelybug 写道 按照这个题目给出,我立刻就告诉你无解,并且,也没有办法用合理逻辑推论。
假设,我是50人中的一个人,我就算看到其他49条狗都病了,但是,主人之间不能交流,我一样推断不出来,或者说,我可以一样相信我的那条狗是最幸运的那个。 如果你看到其他49条狗都病了,又知道“病狗至少有50条”,你就能推断出来。 建议多研究一下楼主的“标准答案”。 请问你如何判断出来不是50条狗都病了?你从问题的那个逻辑推断出来的? |
|
返回顶楼 | |