回 帖 发 新 帖 刷新版面

主题:[讨论]IBM经典面试题:挑战你的逻辑分析能力

IBM公司向来以高素质人才作为企业持续竞争力的保证。进入IBM公司是差不多每个IT人的梦想,偶然看到这条IBM公司的面试题,给大家试试看,看看是否具备进入IBM的实力!
          村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?



答案大家想啊 过几天发布

回复列表 (共38个回复)

沙发

无法估计吧。。。他又没有说每天只允许一个人看其他人的狗。。。三天不能说名什么吧。。。

板凳

本人的见解:三条

题目似乎不太严谨,这里加上限制条件,每天大家所做事情如下:
1、检查其他人的狗
2、开一个杀狗大会,且每人可以根据检查的情况和前一天别人是否杀狗来判断今天自己是否应该杀狗
3、等待下一天的来临

这样整个问题可以用递推来描述。

若只有一条病狗,设其主人为a,则a在检查其他49条狗没病后立即杀死自己的狗。

若有两条病狗,设其主人为a,b,对a而言,他首先会假设自自己的狗没病(否则他就已经杀死自己的狗了)。a发现只有b的狗有病,a会因此而认为b会立即将自己的狗杀死,而a自己则不会杀狗。b的想法与a相同,所以b也不会杀狗。第二天a发现b的狗仍然活着,说明自己的假设是错误的,即自己的狗有病。所以第二天,a会杀了自己的狗。同时b也会将自己的狗杀掉。

若有三条病狗,设其主人为a,b,c,对a而言,他首先会假设自己的狗没病,则问题和有两条狗的情形一致,a会认为b,c会在第二天杀狗,所以自己不会有所动作。对b和c而言,他们的想法会与a一致,这样的结果就是:第二天a,b,c都没有杀狗,到了第三天,三人会发现自己“认为自己的狗没病”这个假设导致了与现实的矛盾,唯一的可能就是假设错了,所以他们会在第三天同时把自己的狗杀掉。

若有四条病狗,设其主人为a,b,c,d,则a第一天发现三条病狗,a先假设自己的狗没病,则问题与有三条病狗的情形相同,a会认为b,c,d将在第三天同时将自己的狗杀死。b,c,d也会有相同的想法。然而现实并不是这样,所以四人将在第四天把自己的狗杀掉。

继续推导可以发现,病狗的数量x和开始杀狗的天数y有以下函数关系,即y=x。
所以结果应该是三条。

3 楼

3条,小学奥数。

4 楼

这样分析:
如果只有一条病狗,那么第一天就会有枪响,因为病狗的主人没看见其他的病狗;
如果只有两条病狗,那么第二天就会有枪响,因为病狗的主人只看见一条病狗,而第一天没有枪响;
...

5 楼

四楼的果然厉害

6 楼

厉害啊,看来我不能到IBM了!

7 楼

但是这道题目没有时间说明啊!~~就象没有说明一天可以杀几只之类的啊!!

8 楼

汗,我还在考虑村民们能否一样看出狗是否得病呢?

9 楼

[em10]

我很苯么?

10 楼

全部

我来回复

您尚未登录,请登录后再回复。点此登录或注册