这个问题难不? [测试]

  • 主题发起人 主题发起人 enjoy
  • 开始时间 开始时间

enjoy

Moderator
VIP
注册
2002-01-24
消息
10,826
荣誉分数
4
声望点数
218
村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。

于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,
只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。
主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙
自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天
传来一阵枪声,问有几条病狗,如何推算得出?

:blink: ;)
 
共有3条病狗。

假设共有n条病狗。第一个人的狗编号为1,依次类推,第50个人的狗编号为50。以[1,2,3...]表示
病狗的数量, []中为狗的编号。所以[1-48,50]表示第49号人看到的病狗的数量。[1-50]=n

第一天,观测结果为:
1号村民:[2,50]>= 1
[1,3-50]>=1
[1-2,4-50]>=1
....
[1-48,50]>=1
50号村民 [1-49]>=1

每个人至少观测到1条病狗。如果有人的观测=0,那么他的狗一定有病,别人第一天就能听到枪声。当观测到1条

病狗后,村民不一定继续往下看,因为继续的结果,也不能判定自家的狗是否有病。

现在我们将50个不等式,左边相加,右边也相加:
49 * [1-50]>=50
49 * n >= 50
n>= (50/49)
n>1.0204
所以: n >=2


第二天,观测结果为:
1号村民:[2,50]>= 2
[1,3-50]>=2
[1-2,4-50]>=2
....
[1-48,50]>=2
50号村民 [1-49]>=2

每个人至少观测到2条病狗。如果有人的观测<2,那么他的狗一定有病,别人第二天就能听到枪声。当观测到两

条病狗后,村民不一定继续往下看,因为继续的结果,也不能判定自家的狗是否有病。

现在我们将50个不等式,左边相加,右边也相加:
49 * [1-50]>=100
49 * n >= 100
n>= (100/49)
n>2.0408
所以: n >=3


第三天,当有的村民看到的3条病狗后,村民不一定继续往下看,因为继续的结果,也不能判定自家的狗是否有

病。但是有的村民只能看到2条病狗(看了49条人家的狗后),说明他的狗有病,第三天才会听到枪声。
如果有n条病狗,那么n个村民只能观测到2条病狗。50-n个村民能观测到3条病狗。将50个村民的观测结果相加:
49 *[1-50] = 2 * n + 3 *(50-n)
49 * n = 150 -n
50 * n = 150
n= 3
所以: n =3
 
我没算,因为第三天听到枪声,我就选三了。:evil:
 
如果有n条病狗,那么n个村民只能观测到(n-1) 条病狗。50-n个村民能观测到n 条病狗。
 
后退
顶部