分类：教育/科学-理工学科-数学
问题：一道《格言》上的谜题有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<n<6 1*(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 的组合