一道《格言》上的谜题有1到30三十个数,其中有两个数。甲知道两数
有1到30三十个数,其中有两个数。甲知道两数之和,乙知道两数之积。 甲问乙:你知道这两个数分别是多少么? 乙说:不知道。 甲说:我也不知道。 乙说:那我知道了。 甲说:我也知道了。问这两数是什么?
两个在1-30之间的数字,甲知道两数之和,乙知道两数之积, 1.乙问甲知道是哪两个数字吗,甲答不知道; 2.甲问乙知道是哪两个数字吗,乙也说不知道; 3.接着甲说我知道了; 4.乙也说他明白了. 此题不很严密,没说两数可不可以相等.但都可以做 思路一: 两数可以相等.答案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) 所以 3