IBM經典面試題


題目:
村子中有50個人,每人有一條狗。在這50條狗中有病狗(這種病不會傳染)。於是人們就要找出病狗。每個人可以觀察其他的49條狗,以判斷它們是否生病,只有自己的狗不能看。觀察後得到的結果不得交流,也不能通知病狗的主人。主人一旦推算出自己家的是病狗就要槍斃自己的狗,而且每個人只有權利槍斃自己的狗,沒有權利打死其他人的狗。第一天,第二天都沒有槍響。到了第三天傳來一陣槍聲,問有幾條病狗,如何推算得出?
解答:
第一種推論:
A、假設有1條病狗,病狗的主人會看到其他狗都沒有病,那麼就知道自己的狗有病,所以第一天晚上就會有槍響。因爲沒有槍響,說明病狗數大於1。
B、假設有2條病狗,病狗的主人會看到有1條病狗,因爲第一天沒有聽到槍響,是病狗數大於1,所以病狗的主人會知道自己的狗是病狗,因而第二天會有槍響。既然第二天也每有槍響,說明病狗數大於2。
由此推理,如果第三天槍響,則有3條病狗。
第二種推論
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的想…………
評價:IBM公司向來以高素質人才作爲企業持續競爭力的保證。進入IBM公司是差不多每個IT人的夢想,偶然看到這條IBM公司的面試題,給大家試試看,看看是否具備進入IBM的實力!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章