一道题,请教!!(算法)
村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出? 问题点数:20、回复次数:11Top
1 楼shenyiwen(沈亦文)回复于 2003-06-04 06:39:25 得分 0
3Top
2 楼bigtea(企鹅)回复于 2003-06-04 08:27:08 得分 0
markTop
3 楼libi(风自吟)回复于 2003-06-04 09:21:14 得分 0
出过的题目Top
4 楼zhaohangcom(赵)回复于 2003-06-04 09:52:08 得分 0
要是强推 3 最合理
(因为当看到 除自己外有病狗时 不会杀死自己狗 )
所以
第1天 50 个人都看到了病狗(>=1)(所以认为自己的狗不是病狗,没有开枪)
第2天 还没有开枪 说明每个人看到外面的病狗数不为1(要是看到的为1 ,那么到第2天 他会推断出 自己的狗是病狗 )(>=2)
第3天 看到2条病狗的人,断定自己的狗是病狗(开枪)
Top
5 楼bigtea(企鹅)回复于 2003-06-04 10:18:22 得分 0
不能理解,
第2天 还没有开枪 说明每个人看到外面的病狗数不为1(要是看到的为1 ,那么到第2天 他会推断出 自己的狗是病狗 )(>=2)?Top
6 楼ewayne(...)回复于 2003-06-04 10:52:15 得分 0
关注!Top
7 楼saker(非越)回复于 2003-06-04 12:19:17 得分 0
如果第一天开腔,只能有一枪;也就是只能有一个人看到其他所有的狗都是没有病的,而推测自己的是病狗而开腔
如果第二天有人开腔,只能是两枪;也就是第一天没有人开腔,说明所有人都看到病狗了,而不能确定自己的狗是不是病狗,而第二天有枪声,一定是因为有人看到了一只病狗,这样的人有两个人,其余的人看到的都是两只病狗,这样那两个看到一只的,就把自己的狗杀掉了
如果第三天有人开腔,只能是三枪;说明看到三只狗的回暂时认为自己的狗不是病狗,而看到两只狗的人,就可以确定自己的狗是病狗了,这样的人回有三个,也就是这天会有三枪。
依次类推了。。。Top
8 楼wjt2000(堂堂正正做男人)回复于 2003-06-04 13:32:00 得分 20
下面的结论不知对否?
第几天有枪声就有几只病狗!
如果有1只病狗,设主人为a,
则第一天看不到其他的疯狗,判断自己的狗为病狗,然后开枪!
如果有2只病狗,设主人为a,b,
第一天:a,b均看到对方的狗,不知道自己的狗是不是病狗,不开枪
第二天:a想:我看到b的狗是病狗,第一天他没开枪,则b也看到一只病狗,其他人的狗是好的,则只有我的狗是病的,于是开枪!b:同理。
如果有3只,设主人为a,b,c
第一天:a,b,c都看到2只病狗,不知自己的狗是不是病狗,不开枪!
第二天:a想:第一天bc没开枪,则他们无法推断自己的狗的情况,如果今天他们开枪则我的狗是好的,如果一直没开枪,则他们仍然无法推断自己的狗的情况,要等到今天结束才能推出自己的狗的情况。第二天结束时:a:bc不开枪,则他们也看到2只病狗,对于b来说,自己的狗看不到,则只有c和我的狗是并的,明天开枪!
bc同理
第三天:abc开枪!
如果有4只:狗的主人(设为abcd)至少要三天来推断自己的狗是不是病狗。
a想:我看到三只病狗,如果在第三天他们的主人开枪(bcd需要到第二天结束后才能判断自己的狗),则我的狗是好的,如果不开枪,则他们在第三天结束之前无法判断自己狗的情况,既和我一样也看到三只病狗,则我的狗也是病狗,第四天我开枪!
bcd同理
于是abcd等到第四天开枪!!
依次类推......
Top
9 楼Lovell(不畏浮云遮望眼,飞来峰上有晴天)回复于 2003-06-04 18:27:39 得分 0
量子力学的道理确实正确.观察而不交流已经改变了世界.也可以由此得出最终的结论来.Top
10 楼callzjy((草魚))回复于 2003-06-05 01:20:36 得分 0
gzTop
11 楼bigtea(企鹅)回复于 2003-06-05 07:11:35 得分 0
噢,明白了,谢谢,看来我应该给分啊,呵呵。
不过,这些村民至少也得具备推理能力了。Top



