电脑高手论坛

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 5284|回复: 3

IBM的招聘考题!

[复制链接]
发表于 2003-4-15 23:43:59 | 显示全部楼层 |阅读模式
村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?
这是IBM公司的招聘题,必须在20分钟内答出。各位加油咯!!
发表于 2006-8-27 11:08:45 | 显示全部楼层
感觉是有X条狗,就在第X天响起枪声。
本来想证明的,但处理这种问题时脑子就是很迟钝。
发表于 2006-8-27 13:01:11 | 显示全部楼层
假设有一条病狗a,a主人去看了其他49条狗,没有发现病狗,也就听不到枪响,他自己就知道了自己家的是病狗,于是枪响。

假设有两条病狗ab,a主人看到了b主人的狗,于是猜想可能就他家的,在等他的枪响,可惜b主人也看到了a主人的狗,也在猜想病狗是a家的,于是在等他的枪响,结果两家都不会等到。既然等不到,肯定也说明自己家的狗有病了,枪响。

然后假设有3条病狗abc,a均发现别人的狗是两条病狗,但他不能通知别人,也不会听到枪响,b也发现两条病狗,c也发现两条病狗,由于都不知道自己家的狗是病狗,于是等待,其他47家肯定在等待这三家的枪响,他们就间接地排除了。于是abc都会根据题目中地条件想:49家一家都不打,肯定在等别人,我家的肯定是了。于是三声枪响。
发表于 2006-8-27 13:21:16 | 显示全部楼层
[quote="硬盘兄"]假设有一条病狗a,a主人去看了其他49条狗,没有发现病狗,也就听不到枪响,他自己就知道了自己家的是病狗,于是枪响。

假设有两条病狗ab,a主人看到了b主人的狗,于是猜想可能就他家的,在等他的枪响,可惜b主人也看到了a主人的狗,也在猜想病狗是a家的,于是在等他的枪响,结果两家都不会等到。既然等不到,肯定也说明自己家的狗有病了,枪响。[/quoteb]

接下来我是这样想的。
假设有3条病狗abc,任取一个,比如说a,发现别人的狗是两条病狗,于是他会猜测:1.总共有两条病狗;2.有三条(即自己的狗也是病狗)。而如果是1,则此时的a就相当于是“假设有两条病狗”情况中的没病的狗,那么会在第二天枪响,但事实上第二天枪不会响(因为此时a不会开枪,同理b、c均不会开枪)。因此,便是2,第三天便知道自己也是病狗故而开枪。
所以类推,得到“有X条狗,就在第X天响起枪声。”
这应该算是数学归纳法吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|cmaster.org

GMT+8, 2024-11-23 11:07 AM , Processed in 0.012628 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表