有两个数在1至30,甲知两数之和乙知两数之积甲问乙你知道是哪两个数么?乙问甲,你知道么,乙说我知道了,然后甲说我也知道了

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 13:12:44
有两个数在1至30,甲知两数之和乙知两数之积甲问乙你知道是哪两个数么?乙问甲,你知道么,乙说我知道了,然后甲说我也知道了

有两个数在1至30,甲知两数之和乙知两数之积甲问乙你知道是哪两个数么?乙问甲,你知道么,乙说我知道了,然后甲说我也知道了
有两个数在1至30,甲知两数之和乙知两数之积甲问乙你知道是哪两个数么?乙问甲,你知道么,乙说我知道了,然后甲说我也知道了

有两个数在1至30,甲知两数之和乙知两数之积甲问乙你知道是哪两个数么?乙问甲,你知道么,乙说我知道了,然后甲说我也知道了
只有1和7(绝对正确,照着书上抄的)
分析
因为乙先说知道,说明乙通过这个乘积可以确定一组唯一的数,而甲后说知道了,说明甲通过乙提供的信息及两数之和也能确定唯一的一组数
先看乘积
如果是1和4,则乘积为4,可分解为1*4,2*2,不是唯一的一组
如果是1和7,则乘积为7是质数,可以分解为1*7,是唯一的一组
如果是4和7,则乘积为28,可分解为,4*7,2*14,1*28,不是唯一的一组
如果是1和17,则乘积为17是质数,可分解为1*17,是唯一的一组
如果是4和17,则乘积为68,可分解为2*34(不符合条件),和4*17,是唯一的一组
如果是7和14,则乘积为98,可分解为49*2(不符合条件),和7*14,是唯一的一组
由此筛选出1和7,1和17,4和17,7和14
在看两数之和
如果是1和7,则和为8,可分解为,1+7,2+6,3+5,4+4
1、如果分解为2+6,则乘积为12,不能确定唯一的一组数相乘
2、如果分解为3+5,则乘积为15,不能确定唯一的一组数相乘
3、如果分解为4+4,则乘积为16,不能确定唯一的一组数相乘
4、如果分解为1+7,则乘积为7,能确定唯一的一组数相乘
因此1和7成立
如果是1和17,则和为18,可分解为1+17,2+16,3+15.9+9
其中,如果分解为1+17,则乘积为17,能确定唯一的一组数相乘
如果分解为5+13,则乘积为65,能确定唯一的一组数相乘
这样至少有两组解符合条件
因此1和17不成立
如果是4和17,则和为21
其中
如果分解为2+19,则乘积为38,能确定唯一的一组数相乘
如果分解为4+17,则乘积为68,能确定唯一的一组数相乘
这样至少有两组解符合条件
因此4和17不成立
如果是7和14,则和为21
其中
如果分解为2+19,则乘积为38,能确定唯一的一组数相乘
如果分解为4+17,则乘积为68,能确定唯一的一组数相乘
这样至少有两组解符合条件
因此4和17不成立
总上,只有1和7符合条件

上面的兄弟是错的,如果是1和7那第一次当甲问乙的时候乙就应该说我知道了,因为1和7相乘等于7,等于7的两个数相乘就只有1和7,所以你这个是错误的

思路一:
设他们为a,b

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

全部展开

思路一:
设他们为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)中的一个]
甲说:那我也知道了
这个什么也说明不了。
思路二:
两数可以相等.答案2和2,推导过程如下:
1.乙问甲:你知道这两个数是什么么?甲答:不知道
-〉则和数>3
2.甲问乙:你知道这两个数是什么么?乙答:不知道
-〉则积数不是素数,和数不是1+素数
3.乙又问:你知道这两个数是什么么?甲答:知道了
-〉则甲的和数分解只有两个解,并且其中一个解是1+素数
-〉因此甲可以通过第二问排除掉将和数分解成1+素数分解的办法,直接取得另一种和分解办法;
-〉同时我们注意到和分解只有两个解的和数满足 和数<6,并且和数>3,因此和数只有4,5;
-〉4的两种分解1,3和2,2存在1和素数的情况因此和数为4,两数为2和2可能(这里说可能是因为还不确定最后一问的情形是否符合)是其中一种答案
-〉5的和分解是1,4和2,3不存在1和素数的和分解,因此和数5必然不是甲所持有的和数
4.甲问乙:你知道了么?乙答:我也知道了
-〉因为乙也和我们推理的一样聪明,因此他通过前三问知道甲持有的和数是4,因此乙的手里拿到的积数只能是1*3 = 3或2*2 = 4,1*3很容易被排除,因此乙持有的积数是4,
->乙通过手里的积数4推测可能是1,4两个数,或2,2两个数;
-〉显然1,4两个数不符合要求,因为这意味这甲持有的和数是1+4=5,乙同样可以推理出5在第三问必然被排除;
-〉2,2两个数意味这甲持有的和数是2+2=4,乙可以推倒出这正是甲在第三问就能得出答案的两个数,因此乙很肯定的知道这两个数就是2和2;
思路三:
假设两数和为n ,两数积为k
//由于开始甲乙都无法判断两数,所以n和k都不会是极大或极小的值
所以 59>n>3 k>3(上限判断比较复杂)
//注意第三句,甲接受到k为非素数的条件后立即做出了判断!
//甲势必对手上的和数如下分
1*(n-1) //要使判断成立,必须n-1=素数
2*(n-2) //在1和2中做出2唯一的判断
3*(n-3) //出现第三种情况将无法做出唯一判断 所以n-3<3
(注意:如果强调两数不相等,这里可以加上=,推导出另外一组解2,3)
所以 31*(n-1) 2*(n-2)
n=4 3 4 //此时两数为2,2
n=5 4 6 //不满足题意
//乙势必对手上的积数如下分
1*k//k为非素数
m*(k/m)
//由于积数分解的可能性复杂,甲提供给乙的信息相当希少.
//乙必然会沿着甲的思路去考虑甲做出唯一判断的条件((2+(n-2)唯一合理),从而意识到 2 * k/2 的组合

收起

我记得我们老师说2和3啊

有两个数在1至30,甲知两数之和乙知两数之积甲问乙你知道是哪两个数么?乙问甲,你知道么,乙说我知道了,然后甲说我也知道了 有一个数列,前两个数是1、1,第三个数是前两个数之和,以后的每个数都是其前两个数之和,输出第30个数程序设计题 在1——100这一百个自然数中,任取21个数.证明:一定存在四个数,其中有两个数之和等于另两个数之和 在1、2、3、4四个数字中任意取两个数,则两个数之和不相同的可能性有()种,分别是 . 在-1,1,-2这三个数中,任意取两个数之和的最大值是 在1,-1,-2这三个数中,任意两个数之和的最大值是? 有两个数之和与这两数之积都是-1,则这两个数是_____ 有一串数1,1,2,3,5,8……,从第三个数起,每个数都是前两个数之和,在这串数的前2011个数中,(接上面)有几个数是5的倍数. VB:有一个数列,前两个数是1,1,……要求输出此数列的前30个数.,前两个数是1,1,第三个数是前两个数之和,以后的每个数都是其前二个数之和,此数列的前几个数为1,1,2,3,5,8,13,……要求输出此数列 在区间0-1之间随机取得两个数则两个数之和小于5/6的概率是多少? 在区间(0、1)上任取两个数,则两个数之和不小于五分之六的概率是? 在区间(0,1)中随机取出两个数,则两个数之和小于6/5的概率是多少? 有一串数1,1,2,3,5,8,…,从第三个数起,每个数都是前两个数之和,在这串数的前1997个数中,有______个是5的倍数. 有一串数:1,1,2,3,5,8,······从第三个数起,每个数都是前两个数之和,在这串数的前面2013个数中,有几个是5的倍数 1-2012中,任意两个数之和不能被任意两个数之差整除的有几个? VFP:有一个数列,前两个数是1、1,以后每个数都是其前两个数之和,请编写程序,输出此数列的前30个数 有一串数1,1,2,3丶5,8,13.从第三个数起,每个数都是它前两个数之和,在这串数的前100个数中,几个是5的倍数 1,1,2,3,5,8,·······从第三个数起,每个数都是前两个数之和在这串数的第1997个数中,有几个是5的倍