您的位置:首页 > 其它

不知道;不知道;我知道了;那我也…

2014-09-25 13:31 155 查看
本文转自:/article/6001798.html


已知两个1~30
之间的数字,甲知道两数之,乙知道两数之

甲问乙:"你知道是哪两个数吗?"乙说:"不知道"
乙问甲:"你知道是哪两个数吗?"甲说:"也不知道"
于是,乙说:"那我知道了"
随后甲也说:"那我也知道了"
请问这两个数是什么?

解:
设这两个数为x,y. 甲知道两数之和 A=x+y; 乙知道两数之积
B=x*y;

该题分两种情况
l 允许重复, 有(1 <= x <= y
<= 30);
l 不允许重复,有(1 <= x < y
<= 30);

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
当不允许重复, 即(1 <= x < y <= 30);
A∈[3,59]; B∈[2,870];

1)首先甲问乙,乙Say
NO

=>
B=x*y 解不唯一
=>
B=x*y 为合数(除了1和它本身两个约数外,还有其它约数的数,叫合数)

又∵ x ≠
y
∴ B ≠
k*k (其中k∈N) ,B为非平方数

于是得到结论(推论1):
B=x*y
是合数且 B 非平方数
即:B
∈{6,8,10,12,14,15,18,20...}

注意,这个推论,我这个局外人和甲都能推导出来。就是说此时,我和甲都知道两数之积的大概范围。

2)然后乙问甲,甲Say
NO

=>
A=x+y 解不唯一
=>
A ∈[5,57];

上面已经提到,甲已经知道推论1。而且甲也知道两数之和,但是他依旧Say
NO,这是怎么回事?我们来揣测一下。由于我们不知道两数之和是多少,所以先从假设开始。

假设
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 即甲知道答案,这与甲Say NO相矛盾
故假设不成立, 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即甲知道答案,这与甲Say NO相矛盾
故假设不成立, A=x+y≠6

当A∈[7,57]时
至少存在两组解满足推论1,即
A为奇数时,
x1=(A-1)/2,y1=(A+1)/2;
x2=(A-3)/2,y2=(A+3)/2;
代入公式B=x*y:
B1=x1*y1=(A-1)/2 * (A+1)/2 (满足推论1)
B2=x2*y2=(A-3)/2 * (A+3)/2 (满足推论1)
A为偶数时,
x1=(A-2)/2,y1=(A+2)/2;
x2=(A-4)/2,y2=(A+4)/2;
代入公式B=x*y:
B1=x1*y1=(A-2)/2 * (A+2)/2 (满足推论1)
B2=x2*y2=(A-4)/2 * (A+4)/2 (满足推论1)
存在多解的情况,让甲无法判断,所以Say NO。

于是得到结论(推论2):
A∈[7,57]

注意,这个推论,我这个局外人和乙都能推导出来。

3)然后乙Say
YES

=> 乙根据已经知道的两数之积B=x*y及推论2可以得出唯一解,即
A=x+y,
A∈[7,57]
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 (不满足推论2,舍去)
得到唯一解
x=1, y=6,可以Say YES

假设B=8
时:有两组解
x1=1,
y1=8
x2=2,
y2=4 (不满足推论2,舍去)
得到唯一解
x=1, y=8,可以Say YES


B>8 时:容易证明均为多重解

于是得到结论(推论3):
x=1,
y=6 或者 x=1, y=8

注意,这个推论,我这个局外人和甲都能推导出来。

这里有个疑问,推论3不是两个答案吗,乙怎么能Say
YES呢?设身处地为乙想想吧,乙是知道两数之积B是多少的。说的再明白些,如果乙知道的两数之积是6,那么他当然可以判定x=1,y=6了。同理,如果乙知道的两数之积是8,那么他当然可以判定x=1,y=8了。此时,我和甲不知道两数之积,所以只能得到推论3.

4)最后甲Say
YES

=> 甲根据已经知道的两数之和A=x+y及推论3可以得出唯一解

说的再明白些,如果乙知道的两数之和是7,那么他可以判定x=1,y=6了。如果甲知道的两数之和是9,那么他可以判定x=1,y=8了。

综上所述,原题所求有两组解:
x1=1,
y1=6
x2=1,
y2=8
不信的话,你可以从头开始验证两组解,你会发现甲和乙的回答,是那么“顺其自然”。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
当x<=y时,有(1 <= x <= y <=
30);
同理可得唯一解 x=1, y=4

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
允许两数重复的情况下
答案为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

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
换汤不换药
把上面的题目改下,改成乙先问甲,甲Say
NO
,然后甲问乙,乙Say NO,然后甲Say
YES
,最后乙Say
YES
。请问这两个数是什么?
解题思路类似,答案是:
允许两数重复的情况下
答案为x=2,
y=2;
甲知道和A=x+y=2, 乙知道积B=x*y=4
不允许两数重复的情况下有两种答案
答案1: 为x=2,
y=3;
甲知道和A=x+y=5, 乙知道积B=x*y=6
答案2: 为x=2,
y=4;
甲知道和A=x+y=6, 乙知道积B=x*y=8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐