[讨论] 50只狗找病狗...IBM面试问题疑点

楼主: jeff740212 (孤单旅行)   2012-02-22 06:35:23
我凑巧在网络上看到这个问题
跟所谓的黑白机器人问题很相似
但是他的解答让我觉得有很大的问题....
IBM公司向来以高素质人才作为企业持续竞争力的保证。进入IBM公司是差不多每个IT人的
梦想,偶然看到这条IBM公司的面试题,给大家试试看,看看是否具备进入IBM的实力!
国国村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人
们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不
能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是
病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。
第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?
======================不想看解答勿往下翻========================
第一种推论:
 
A、假设有1条病狗,病狗的主人会看到其他狗都没有病,那么就知道自己的狗有病,
所以第一天晚上就会有枪响。因为没有枪响,说明病狗数大于1。
国国B、假设有2条病狗,病狗的主人会看到有1条病狗,因为第一天没有听到枪响,是病
狗数大于1,所以病狗的主人会知道自己的狗是病狗,因而第二天会有枪响。既然第二天
也没有枪响,说明病狗数大于2。
  由此推理,如果第三天枪响,则有3条病狗。
第二种推论:
1 如果为1,第一天那条狗必死,因为狗主人没看到病狗,但病狗存在。
2 若为2,令病狗主人为a,b。 a看到一条病狗,b也看到一条病狗,但a看到b的病
狗没死故知狗数不为1,而其他人没病狗,所以自己的狗必为病狗,故开枪;而b的想法与
a一样,故也开枪。
由此,为2时,第一天看后2条狗必死。
3 若为3条,令狗主人为a,b,c。 a第一天看到2条病狗,若a设自己的不是病狗,
由推理2,第二天看时,那2条狗没死,故狗数肯定不是2,而其他人没病狗,所以自己的
狗必为病狗,故开枪;而b和c的想法与a一样,故也开枪。
由此,为3时,第二天看后3条狗必死。
4 若为4条,令狗主人为a,b,c,d。a第一天看到3条病狗,若a设自己的不是病狗
,由推理3,第三天看时,那3条狗没死,故狗数肯定不是3,而其他人没病狗,所以自己
的狗必为病狗,故开枪;而b和c,d的想法与a一样,故也开枪。
由此,为4时,第三天看后4条狗必死。
5 余下即为递推了,由年n-1推出n。
========================解答结束===========================
已解决 原来是语病问题....
什么第三天看后....(其实就应该是第四天)
不过如果题目条件加一个当场杀,
都会在第一天死掉.....是否有人跟我有同样想法?
作者: puzzlez (帕索最帅!)   2012-02-22 06:40:00
推论1和推论2还不是一样
楼主: jeff740212 (孤单旅行)   2012-02-22 06:46:00
不一样耶 一个是第三天有三只 另一个有四只推论一的成立条件应该为各自回家晚上在杀推论二的条件如果为当场杀 那我觉得还是不成立
作者: puzzlez (帕索最帅!)   2012-02-22 06:50:00
这跟何时杀没什么关系 而且推论2只是把答案扩展为n只而已例如你第一天看到了3只病狗 那你要杀掉自己的狗吗?
楼主: jeff740212 (孤单旅行)   2012-02-22 06:52:00
那两个推论出的第三天病狗数量怎么会不同?
作者: puzzlez (帕索最帅!)   2012-02-22 06:52:00
推论二能够告诉你第一天要不要杀自己的狗?哪里不一样?病狗若有三只 当事人只能看到二只不是?
楼主: jeff740212 (孤单旅行)   2012-02-22 06:58:00
原来....看推论2的第4点 他应该改为第四天四条狗必死什么第三天后四条狗必死就怪了 第n天 = n 才是
作者: puzzlez (帕索最帅!)   2012-02-22 07:01:00
它写 第三天看后....是啦...有语病....
楼主: jeff740212 (孤单旅行)   2012-02-22 07:03:00
原来 害我还想那么久 感谢 不过我还在想当场杀的话第一天不管几只病狗都会死光
作者: puzzlez (帕索最帅!)   2012-02-22 08:42:00
并不会例如你第一天看到了3只病狗 那你要杀掉自己的狗吗?如果你不能确定的话 其他人又怎么能确定?而且这跟杀狗时间 一~点关系也没有不管是哪一天的早上 中午 晚上杀 都没差
作者: luciferii (路西瓜)   2012-02-22 11:52:00
错....因为进入IBM才不是每个IT人的梦想 :P
作者: tp (会吵的孩子有糖吃)   2012-02-22 16:34:00
杀狗时间有关系阿,我看到了1只病狗,过了一会儿还没死那我是不是就可以立刻杀掉自己的狗了?
作者: remvsd (~~~)   2012-02-22 19:48:00
过了一会还没死,那是因为还没过这天啊,病狗的主人在还没过这天之前就杀的话,那不管几只病狗,第一天都可以全部杀光了这种题目应该都是默认杀狗时间是在当天最后一刻,不然就没意义了
作者: puzzlez (帕索最帅!)   2012-02-22 21:43:00
我已经不知道该说什么了.....
作者: kuoll (kuoll)   2012-02-22 22:58:00
这题目表达的很烂(但是大家依经验都知道它要问什么) 如果题目叙述的严谨一点我相信推文的争论就会解开了
作者: teves (teves)   2012-02-23 13:50:00
为什么要进IBM? 我听过微软->google->facebook的演进说法可这里面根本没有IBM XD
楼主: jeff740212 (孤单旅行)   2012-02-23 15:53:00
哈哈 IBM不是我说的拉 是那个题目上本来说的!
作者: lovejessie19 (Leon)   2012-03-04 01:32:00
假设病狗4只 那二天就可以看出来了不是吗?第二天A假设B只能看到两只 所以就应该杀自己的狗了可是都没人开 代表B有看到3只 所以是4只...这问题真的有解吗....答案就是4条 lol不对是3条 因为第一天不开枪才会知道有两条以上所以第二天不开才会知道3条以上 正解无误solved
作者: up1205   2012-03-08 10:32:00
想想难吧
作者: skyfire (恶魔苏醒)   2012-03-28 15:38:00
为什么一天只能看一次狗?....一天看十次不行吗?
作者: waveflower (waveflower)   2012-03-31 19:34:00
这题跟背后画圈圈叉叉的题目好像喔
作者: TAGOSAKU (TAGOSAKU)   2012-03-11 13:58:00
推论二的第三条开始就不成立了吧......

Links booklink

Contact Us: admin [ a t ] ucptt.com