求解一道智力题~(移动公司面试题中的.)已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积.甲问乙:"你知道是哪两个数吗?"乙说:乙问甲:"你知道是哪两个数吗?"甲说:于是,乙说:
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/22 07:43:20
求解一道智力题~(移动公司面试题中的.)已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积.甲问乙:"你知道是哪两个数吗?"乙说:乙问甲:"你知道是哪两个数吗?"甲说:于是,乙说:
求解一道智力题~(移动公司面试题中的.)
已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积.
甲问乙:"你知道是哪两个数吗?"乙说:
乙问甲:"你知道是哪两个数吗?"甲说:
于是,乙说:"那我知道了";
随后甲也说:"那我也知道了";
这两个数是什么?
求解一道智力题~(移动公司面试题中的.)已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积.甲问乙:"你知道是哪两个数吗?"乙说:乙问甲:"你知道是哪两个数吗?"甲说:于是,乙说:
这道题有一定的难度,需要考虑的数很多,不过如果限制在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).
答案是2和2 肯定对,应为是2和2的话,甲知道的就是4,4可以是1+3或2+2,如果是1和3的话,甲问乙,乙就会说知道,应为乙知道积,只有1*3才等于3,但是乙说不知道,所以就只有2和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.
全部展开
允许两数重复的情况下
答案为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.
甲知道两数之和 A=x+y;
乙知道两数之积 B=x*y;
该题分两种情况 :
允许重复, 有(1 <= x <= y <= 30);
不允许重复,有(1 <= x < y <= 30);
当不允许重复,即(1 <= x < y <= 30);
1)由题设条件:乙不知道答案
<=> B=x*y 解不唯一
=> B=x*y 为非质数
又∵ x ≠ y
∴ B ≠ k*k (其中k∈N)
结论(推论1):
B=x*y 非质数且 B ≠ k*k (其中k∈N)
即:B ∈(6,8,10,12,14,15,18,20...)
证明过程略。
2)由题设条件:甲不知道答案
<=> A=x+y 解不唯一
=> A >= 5;
分两种情况:
A=5,A=6时x,y有双解
A>=7 时x,y有三重及三重以上解
假设 A=x+y=5
则有双解
x1=1,y1=4;
x2=2,y2=3
代入公式B=x*y:
B1=x1*y1=1*4=4;(不满足推论1,舍去)
B2=x2*y2=2*3=6;
得到唯一解x=2,y=3即甲知道答案。
与题设条件:"甲不知道答案"相矛盾,
故假设不成立,A=x+y≠5
假设 A=x+y=6
则有双解。
x1=1,y1=5;
x2=2,y2=4
代入公式B=x*y:
B1=x1*y1=1*5=5;(不满足推论1,舍去)
B2=x2*y2=2*4=8;
得到唯一解x=2,y=4
即甲知道答案
与题设条件:"甲不知道答案"相矛盾
故假设不成立,A=x+y≠6
当A>=7时
∵ x,y的解至少存在两种满足推论1的解
B1=x1*y1=2*(A-2)
B2=x2*y2=3*(A-3)
∴ 符合条件
结论(推论2):A >= 7
3)由题设条件:乙说"那我知道了"
=>乙通过已知条件B=x*y及推论(1)(2)可以得出唯一解
即:
A=x+y, A >= 7
B=x*y, B ∈(6,8,10,12,14,15,16,18,20...)
1 <= x < y <= 30
x,y存在唯一解
当 B=6 时:有两组解
x1=1,y1=6
x2=2,y2=3 (∵ x2+y2=2+3=5 < 7∴不合题意,舍去)
得到唯一解 x=1,y=6
当 B=8 时:有两组解
x1=1,y1=8
x2=2,y2=4 (∵ x2+y2=2+4=6 < 7∴不合题意,舍去)
得到唯一解 x=1,y=8
当 B>8 时:容易证明均为多重解
结论:
当B=6时有唯一解 x=1,y=6当B=8时有唯一解 x=1,y=8
4)由题设条件:甲说"那我也知道了"
=> 甲通过已知条件A=x+y及推论(3)可以得出唯一解
综上所述,原题所求有两组
x1=1,y1=6
x2=1,y2=8
当x<=y时,有(1 <= x <= y <= 30);
同理可得唯一解 x=1,y=4
收起
设他们为a,b
则
a,b属于N*且a,b<31
a+b=甲知道
ab=乙知道
乙说:不知道
说明这两个数不是(质数,1)或(质数,质数)
甲说:也不知道
说明它们不是(1,1)也不是(30,30) (1,2) (29,30)
乙说:那我知道了
说明乙那个积有两种可能
(a,b)或[(30...
全部展开
设他们为a,b
则
a,b属于N*且a,b<31
a+b=甲知道
ab=乙知道
乙说:不知道
说明这两个数不是(质数,1)或(质数,质数)
甲说:也不知道
说明它们不是(1,1)也不是(30,30) (1,2) (29,30)
乙说:那我知道了
说明乙那个积有两种可能
(a,b)或[(30,30) (1,2) (29,30)中的一个]
甲说:那我也知道了
这个什么也说明不了
收起