风後(fenghou)
|
|
22 楼:
Re:微软面试题
|
03年01月12日10点39分 |
【ioriok在大作中谈到:】 > >有一个村子住着50户人家,每一家都养着一条狗,每个人都很爱自己的狗,一天,村子里的狗得了狂犬病,只能将狗杀了,可是每户的主人能一眼就发现别人家的狗是否得了病,却不能发现自己的狗得了病,而每户人只能杀自己的狗,而不能杀其他人的狗,50户人家也不能互相透露哪只狗得病了。第一天,没有枪声。第二天也没有枪声,到了第三天响起了一阵枪声,试问,有几条狗得了狂犬病,一共响了几声枪?(PS:从第一天至最后一天病狗的数目试一样的)
问题是怎样知道自己的狗有病。别人不能告诉,自己也看不出。只能看别人的狗和别人的行动推出。
第1天可能存在2种人, 1。看见别人的狗有病。2。看见别人的狗没病。 因为病狗>0,所以2肯定会在第一天杀掉自己的狗。但这事没发生。 所以病狗>1,所有人都是第1种情况。都不会在第1天杀狗。
第2天的情况同第1天一样,(有病狗>1的条件。) 若有一个人只看到1条狗有病,肯定会在第2天杀掉自己的狗。但这事没发生。所以病狗>2。
第3天的情况同第2天一样,(有病狗>2的条件。)若有1个人只看到2条狗有病,肯定会在第3天杀掉自己的狗。事情发生了。所以有3条狗有病。有3个人符合“只看到2条狗有病”的条件,所以有3个人开了枪。
答案是有3条狗有病,有3个人开了枪。 (我原以为条件不够呢,没想到和那题有点不同 :) 。)
|
|
|
|
※来源: 【 推理之门 Tuili.Com 】.
|
|