论坛首页 入门技术论坛

村里有50个人,每个人有一条狗,即有50只狗……标准答案

浏览 69556 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (2)
作者 正文
   发表时间:2012-02-17  
我的嘞个去,还在这争论呢。这个题目没有意义,唯一有意义的是,楼主说是某知名大公司的出的面试题目。。
0 请登录后投票
   发表时间:2012-02-26  
我觉得是50条都是病狗
0 请登录后投票
   发表时间:2012-02-27  
我能不能问问,为什么你们都说 “我觉得 我觉得云云?”
0 请登录后投票
   发表时间:2012-03-01  
神奇的题目!神奇的答案!
0 请登录后投票
   发表时间:2012-03-13  
IBM搞的东西多了去了,也不定是编程题,说不定是推论题,或其他类型的题。
1.50条,主人A看到49条病狗,但无人开枪,站在别人角度一想,别人也看到49,以为自己的狗无问题,所以都在等。
   那么,第二天应该是一片枪声。
2.1条,主人A看到0条病狗,于是应该当天就有枪声。
答案是:1>病狗>50
3.49条,主人看到49或48条病狗,但当天无人看枪,因为最多看到49条病狗,有一条可能是自己的
       第二天无人开枪,以此推论其他人也看到49条病狗,以为他自己狗是好的,得出自己狗是病狗的结论
     故第三天一片枪声,都以为自己的是病狗
4.48条,主人看到2条或者3条好狗,就无法做出判断了,他可以假定自己的狗就是好的,等到天荒地老。
5.2条,主人看到2或1条病狗,其他是好狗,也无法做出判断,大家一起等到天荒地老。

真相只有一个,共49条病狗。
0 请登录后投票
   发表时间:2012-03-14  
lonelybug 写道
按照这个题目给出,我立刻就告诉你无解,并且,也没有办法用合理逻辑推论。

假设,我是50人中的一个人,我就算看到其他49条狗都病了,但是,主人之间不能交流,我一样推断不出来,或者说,我可以一样相信我的那条狗是最幸运的那个。


主人之间不交流,那么跟几天有什么关系?就是看一辈子,也不能推断自己的狗有病啊,所以我同意这个观点
0 请登录后投票
   发表时间:2012-04-16  
枪杀自己的狗的时候不就能看出来自己的狗是不是病狗了么
0 请登录后投票
   发表时间:2012-04-23  
5年前就看过这个题目。当时没想出来。看过答案后觉得很信服很妙。
0 请登录后投票
   发表时间:2012-04-24   最后修改:2012-04-24

用反证类推法很简单:

第二天没有枪响,这个问题很严重, 第三天清晨,50个人起床刷牙洗脸后开始思考了:

昨天(也就是第二天)一天都没有听到枪声,说明:

至少有2只病狗,但是如果只有2只病狗的话, 其中一个病狗的主人(比如叫张三)只看到了1只病狗在外面,那么张三肯定会毫不犹豫在吃早饭前就开枪打死自己的狗的,所以

=》

至少有3只病狗,但是如果只有3只病狗的话,  其中一个病狗的主人(比如叫张三) 只看到了2只病狗在外面,但前面证明了如果只有2只病狗的话,那2只病狗主人至少会有一个人毫不犹豫在吃早饭前就开枪打死自己的狗了, 吃早饭前张三还没听到枪声他肯定会开枪打死自己的狗的,所以

=》

至少有4只病狗,但是如果只有4只病狗的话,  其中一个病狗的主人(比如叫张三) 只看到了3只病狗在外面,但前面证明了如果只有3只病狗的话,那3只病狗主人至少会有一个人毫不犹豫在吃早饭前就开枪打死自己的狗了, 吃早饭前张三还没听到枪声他肯定会开枪打死自己的狗的 ,所以

=》

至少有5只病狗,但是如果只有5只病狗的话,  其中一个病狗的主人(比如叫张三) 只看到了4只病狗在外面,但前面证明了如果只有4只病狗的话,那4只病狗主人至少会有一个人毫不犹豫在吃早饭前就开枪打死自己的狗了,吃早饭前张三还没听到枪声他肯定会开枪打死自己的狗的,所以

=》

这里无限循环下去。。。。。

至少有50只病狗,但是如果只有50只病狗的话,  其中一个病狗的主人(比如叫张三) 只看到了49只病狗在外面,但前面证明了如果只有49只病狗的话,那49只病狗主人至少会有一个人毫不犹豫在吃早饭前就开枪打死自己的狗了,吃早饭前张三还没听到枪声他肯定会开枪打死自己的狗的,所以

=》

至少有51只病狗,尼玛这个太坑爹了吧,总共才50只狗,所以第二天没有枪响是个很不正常的事情,有悖伦理道德,除非这50个人中有一个人的小学数学是语文老师教的,不会推理。

 

所以结论是:题目的假设条件错误,第二天不可能没有枪声。

0 请登录后投票
   发表时间:2012-04-25   最后修改:2012-04-25
答案是3条
题目还需要一个严谨的条件:"前提是50个村名都100%坚信村中病狗数量[1,50]"...条件1
如果只有A有病狗,第一天他看不到病狗,他认为num=1,基于[1,50],所以他知道自己的是病狗,就会开枪。
第一天无枪声。让题目修改了一个条件1:50个村名坚信num=[2,50],

如果只有A,B有病狗,第一天和第二天他们却只看到1条病狗,区间最小值2-1=1,说明他知道自己的狗是病狗,会开枪。
第二天无枪声。让题目修改了一个条件1:50个村名坚信num=[3,50],
----
同理如果第三天无枪声,则会让村名坚信num=[4,50]。

第三天有枪声,则数量就等于 区间[3,50] - 区间[4,50] = [3]。

总之,村名开枪,是因为他看到的数量,不在他认为的病狗区间内,且比他认为的病狗区间的最小值小1,基于这一想法,村名才会下决定,才会开枪的。

0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics