一个面试问题,高手来!

来源:百度知道 编辑:UC知道 时间:2024/06/23 13:57:16
有这样一个面试题,甲知道两个数的积,乙知道两个数的和,丙问甲是否知道这两个数是什么,甲说不知道,丙问乙是否知道这两个数是什么,乙也说不知道。当甲第二次问甲是否知道这两个数是什么时,甲说知道了,丙再问乙是否知道那两个数是什么,乙也说知道了。请问这两个数是什么?要有分析过程。

见过这样的题,但一定要限制两个数的范围,比如一楼的限制在2---99之间的自然数。
如果限制在1--30之间,那答案就是1和6了,思路是一样的。

4,13

大家看看思路就可以了,估计只有数学家才能用脑袋想想就搞出来的。

两个数m,n,其中2<m<99; 2<n<99
1.
先找出所有m,n之间的组合,如下:
(2,2) (2,3) (2,4) ........... (99,98) (99,99)

2.
甲说,不知道这两个数是什么,但是乙也不知道。
==>去掉那些和为唯一值的组合(否则甲就知道答案了)。
(2,4) (2,5) (2,6) ...... (97,98) (97,99) (98,98)
==>表示这两个数不能同时为质数(否则乙就知道答案了)。所以去掉这些同时为质数的组合,如(2,2),(3,11)等等。
(2,4) (2,6) (2,8) ...... (97,98) (97,99) (98,98)
==>假设上述两个质数的和为s,则剩下的组合中两个元素的和不能为s,否则甲不能断定乙肯定不知道结果。所以去掉这些两个元素和为上述两个质数之和的组合。
(2,9) (2,15) (2,21) ...... (97,98) (97,99) (98,98)

3。
第二次,甲知道了,乙也知道了
==>表明在剩下的组合中,两个数的积是唯一的。所以去掉那些元素积相同的组合。
(2,9) (2,25) (2,27) ...... (97,98) (97,99) (98,98)

4.
甲说,我也知道了
==>表明在剩下的组合中,元素的和是唯一的(否则甲也不能说就知道答案)。
(4,13)

http://ww123