求解一道智力题~(移动公司面试题中的.)

求解一道智力题~(移动公司面试题中的.)
已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积.
甲问乙:"你知道是哪两个数吗?"乙说:
乙问甲:"你知道是哪两个数吗?"甲说:
于是,乙说:"那我知道了";
随后甲也说:"那我也知道了";
这两个数是什么?
qwfy44l 1年前 已收到4个回答 举报

lululee521 幼苗

共回答了19个问题采纳率:84.2% 举报

这道题有一定的难度,需要考虑的数很多,不过如果限制在1`30之间就好办多了.
按照甲第一句话的后半部分,我们肯定甲知道的和S肯定不会大于54.因为如果和54=1.那么(下面我说的“至少两组数”中的两组数都不相同,而且的确存在(也就是那些数都小于100)的理由我就不写了,根据条件很显然) a)或者乙的M=2*a*b,乙就会在(2*a,b)和(2,a*b)至少两组数里拿不定主意(a和 b都是奇数,所以这两组数一定不同); b)或者M=2^n*a*b,如果n>1,那么乙就会在(2^(n-1)*a,2*b)和(2^n*a,b)至少两组数里拿不定主意; 如果n=1,而且a不等于b,那么乙就会在(2*a,b)和(2b,a)至少两组数里拿不定主 意; 如果n=1,而且a等于b,这意味着S=a+2*a=3a,所以S一定是3的倍数,我们只要 讨论S=27就可以了.27如果被拆成了S=9+18,那么乙拿到的M=9*18,他就会在 (9,18)和(27,6)至少两组数里拿不定主意.(上面对51的讨论就是从这最后一种情况的讨论发现的,我不知道上面的论证是否 过分烦琐了,但是看看51这个“特例”,我怀疑严格的论证可能就得这么烦) 现在我们知道,当且仅当甲得到的和数S在 C={11,17,23,27,29,35,37,41,47,53} 中,他才会说出“我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么”这句话 乙可以和我们得到同样的结论,他还比我们多知道那个M.4)乙的话“我现在能够确定这两个数字了”表明,他把M分解成素因子后,然后组合成关于那两个数的若干个猜想中,有且仅有一个猜想的和在C中.否则的话,他还是会在多个猜想之间拿不定主意.甲听了乙的话也可以得到和我们一样的结论,他还比我们多知道那个S.5)甲的话“我现在也知道这两个数字是什么了”表明,他把S拆成两数和后,也得到了关于那两个数的若干个猜想,但是在所有这些拆法中,只有一种满足4)里的条件,否则他不会知道究竟是哪种情况,使得乙推断出那两个数来.于是我们可以排除掉C中那些可以用两种方法表示为S=2^n+p的S,其中n>1,p为素数.因为如果S=2^n1+p1=2^n2+p2,无论是(2^n1,p1)还是(2^n2,p2)这两种情况,乙都可以由M=2^n1*p1或M=2^n2*p2来断定出正确的结果,因为由M得到的各种两数组合,只有(2^n,p)这样的组合,两数和才是奇数,从而在C中,于是乙就可以宣布自己知道了是怎么回事,可甲却还得为(2^n1,p1)还是(2^n2,p2)这两种情况犯愁.因为11=4+7=8+3,23=4+19=16+7,27=4+23=16+11,35=4+31=16+19,37=8+29=32+5,47=4+43=16+31.于是S的可能值只能在 17 29 41 53 中.让我们继续缩小这个表.29不可能,因为29=2+27=4+25.无论是(2,27)和(4,25),乙都可以正确判断出来:a)如果是(2,27),M=2*27=2*3*3*3,那么乙可以猜的组合是(2,27)(3,18)(6,9),后面两种对应的S为21和15,都不在C中,故不可能,于是只能是(2,27).b)如果是(4,25),M=4*25=2*2*5*5,那么乙可以猜的组合是(2,50)(4,25)(5,20) (10,10).只有(4,25)的S才在C中.可是甲却要为乙的M到底是2*27还是4*25苦恼.41不可能,因为41=4+37=10+31.后面推理略.53不可能,因为53=6+47=16+37.后面推理略.研究一下17.这下我们得考虑所有17的两数和拆法:(2,15):那么M=2*15=2*3*5=6*5,而6+5=11也在C中,所以一定不是这个M,否则4) 的条件不能满足,乙“我现在能够确定这两个数字了”的话说不出来.(3,14):那么M=3*14=2*3*7=2*21,而2+21=23也在C中.后面推理略.(4,13):那么M=4*13=2*2*13.那么乙可以猜的组合是(2,26)(4,13),只有(4,13) 的和在C中,所以这种情况乙可以说4)中的话.(5,12):那么M=5*12=2*2*3*5=3*20,而3+20=23也在C中.后面推理略.(6,11):那么M=6*11=2*3*11=2*33,而2+33=35也在C中.后面推理略.(7,10):那么M=7*10=2*5*7=2*35,而2+35=37也在C中.后面推理略.(8,9):那么M=8*9=2*2*2*3*3=3*24,而3+24=27也在C中.后面推理略.于是在S=17时,只有(4,13)这种情况,乙才可以猜出那两数是什么,既然如此,甲就知道这两个数是什么,说出“我现在也知道这两个数字是什么了”.听了甲的话,于是我们也知道,这两数该是(4,13).

1年前

5

一步一晃儿 幼苗

共回答了2个问题 举报

允许两数重复的情况下
答案为x=1,y=4;甲知道和A=x+y=5,乙知道积B=x*y=4
不允许两数重复的情况下有两种答案
答案1:为x=1,y=6;甲知道和A=x+y=7,乙知道积B=x*y=6
答案2:为x=1,y=8;甲知道和A=x+y=9,乙知道积B=x*y=8

设这两个数为x,y.

1年前

2

wxf2006 花朵

共回答了4434个问题 举报

设他们为a,b

a,b属于N*且a,b<31
a+b=甲知道
ab=乙知道
乙说:不知道
说明这两个数不是(质数,1)或(质数,质数)
甲说:也不知道
说明它们不是(1,1)也不是(30,30) (1,2) (29,30)
乙说:那我知道了
说明乙那个积有两种可能
(a,b)或[(30...

1年前

2

石窦山 幼苗

共回答了5个问题 举报

答案是2和2 肯定对,应为是2和2的话,甲知道的就是4,4可以是1+3或2+2,如果是1和3的话,甲问乙,乙就会说知道,应为乙知道积,只有1*3才等于3,但是乙说不知道,所以就只有2和2了。 其它数都不行!

1年前

0
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 20 q. 0.676 s. - webmaster@yulucn.com