试试看,IBM招聘题
村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?
这是ibm公司的招聘题,必须在20分钟内答出。各位加油咯!!
村子中有50个人,每人有一条狗。在这50条狗中有病狗(这种病不会传染)。于是人们就要找出病狗。每个人可以观察其他的49条狗,以判断它们是否生病,只有自己的狗不能看。观察后得到的结果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要枪毙自己的狗,而且每个人只有权利枪毙自己的狗,没有权利打死其他人的狗。第一天,第二天都没有枪响。到了第三天传来一阵枪声,问有几条病狗,如何推算得出?
这是ibm公司的招聘题,必须在20分钟内答出。各位加油咯!!
假设有3只,依据以上的推理,同样不对,没法听到枪声,同样大家可以一直推到有50只的情况,都是不成立的。
如果只有一只病狗,那么肯定病狗的主人看不到有病狗,必然会推出自己的狗是病狗,至于为什么要在第三天开枪,还是一连串枪声,那是出题人故意这样说的以迷惑解题人!此题只要有人看到病狗,由于无法知道共有多少条病狗,也就无法确定自己的狗是否是病狗,即无法开枪!所以答案只有1能满足题意!
当然这是有前提的:
一、人给狗作检查不会出错;
二,人不会偏袒自己的狗,只有认识到自己的狗有病就会枪毙它!
三、以上以时间为单位主要是为了划分,我们也可以以小时,时刻......自己可以根据需要自己定义时间!!当然这一切在计算机上实现就不会出现这个问题了!
我想告诉楼主我今天刚看到你出的题!所以20分钟时不能实现你了!!!!
看了aGreenApple() 、hexuedong(青风)、zsl_oo7(小雷)。说的都挺有逻辑的
不过我认为有这样一种情况。如果50条狗中有一条病狗的话。病狗的主人至少需要知道每个人检查完其它49条狗要用多少时间,这样他才能决定自己的狗是不是有病。如果楼主有标准答案的话请与大家分享。谢谢
由此,为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一样,故也开枪。
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一样,故也开枪。
请你看清楚我是怎么说的!!我那还有个递归呢!!这只是说在第三天有枪响!那么你可以把我的 N 当作为 3 阿!我所说的可以回答任意的哪天有枪响!我相信大家的都会看懂的吧!!!!