文章目录
鬼谷子问徒
孙膑,庞涓都是鬼谷子的徒弟。一天鬼谷子出了这道题目:他从2到99中选出两个不同的整数,把积告诉孙,把和告诉庞。
庞说:我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么。
孙说:我本来的确不知道,但是听你这么一说,我现在能够确定这两个数字了。
庞说:既然你这么说,我现在也知道这两个数字是什么了。
请问这两个数是什么?为什么?
假设两个数是 a , b ( a < b ) a,b(a<b) a,b(a<b). 记两数之和为 A = a + b A=a+b A=a+b、两数之积为 B = a b B=ab B=ab.
这个问题是一个挺有趣的问题。首先理解两个人的话其实是不难的的,难的是计算出结果。主要是计算量有点大。当然,如果使用计算机辅助的话,则计算量一点都不大。
其实两个人都是根据自己拿到的数,去计算对方拿到的数的所有可能的一个集合,并不断的根据新的信息去更新(缩小)这个可能集。
他们的话其实都是描述了自己拿到的数具有的一些性质,如此一方可以根据对方的话来缩小自己脑中所维护的可能集。
本文较长,如果想直接看结果敬请直接点击目录中的 “最后结果”
本文较长,如果想直接看结果敬请直接点击目录中的 “最后结果”
本文较长,如果想直接看结果敬请直接点击目录中的 “最后结果”
在最后结果后面有分别模拟庞统和孙膑的计算过程的说明。不同于我们的计算,他们由于知道一个数,所以他们的计算量远比我们小。
文章目录
庞统:我虽然不能确定两个数是什么
理解
庞的“我虽然不能确定这两个数是什么”说明A分拆成两数(这里指介于2-99的数)相加的分拆方式不唯一。如 A = 10 A=10 A=10,则有如下3种分拆方式
2+8
3+7
4+6
2-99中选两个不同的数相加可以加出来的数是区间 [ 5 , 197 ] [5,197] [5,197]中的每一个整数,大多数数都拥有两种以上的拆分方式。事实上,无需使用计算机,不难得出可唯一拆分的A仅有以下4种:
2+3=5
2+4=6
97+99=196
98+99=197
计算结果
至此,我们有 A ∈ [ 7 , 195 ] \boldsymbol{A \in [7,195]} A∈[7,195],共189个。
庞统:但是我肯定你(指孙膑)也不知道这两个数是什么
理解
下半句“但是我肯定你也不知道这两个数是什么”说明每种分拆方式中的两个数相乘所得的积分解为两个数(2-99)相乘的分解方式不唯一。依旧是 A = 10 A=10 A=10的例子,对于上面所说的3种分拆方式的情况:
-
2+8
16 = 2 × 8 16=2\times 8 16=2×8. 分解方式唯一 -
3+7
21 = 3 × 7 21=3\times 7 21=3×7. 分解方式唯一 -
4+6
24 = 2 × 12 = 3 × 8 = 4 × 6 24=2 \times 12 = 3\times 8 = 4\times 6 24=2×12=3×8=4×6. 分解方式不唯一
3种分方式中,存在某种情况的分解方式唯一,说明 A = 10 A=10 A=10不符合庞的话的下半句。
再举一个 A = 11 A=11 A=11的例子,则:
- 2+9
2 × 9 = 3 × 6 2\times 9=3 \times 6 2×9=3×6. 分解方式不唯一。 - 3+8
3 × 8 = 4 × 6 3 \times 8 = 4 \times 6 3×8=4×6. 分解方式不唯一。 - 4+7
4 × 7 = 2 × 14 4 \times 7 = 2 \times 14 4×7=2×14. 分解方式不唯一。 - 5+6
5 × 6 = 2 × 15 5 \times 6 = 2 \times 15 5×6=2×15. 分解方式不唯一。
可以看到每种分拆方式的两个数的积的分解方式都不唯一。因此 A = 11 A=11 A=11目前是可能的。
我们将上面的验算过程定义为逻辑函数 F ( A ) F(A) F(A),当且仅当每一种分拆方式下相乘所得的积分解方式不唯一 F ( A ) = 1 F(A)=1 F(A)=1,否则 F ( A ) = 0 F(A)=0 F(A)=0.
令到目前为止符合庞所说的话的 A A A构成的集合记作 P o s s i b l e _ A 2 Possible\_A_{2} Possible_A2, 即 P o s s i b l e _ A 2 = { A ∣ F ( A ) = 1 } Possible\_A_{2}=\{A \mid F(A)=1\} Possible_A2={ A∣F(A)=1}.则只需要从 [ 7 , 195 ] [7,195] [7,195]一一取出 A A A验证 F ( A ) = 1 F(A)=1 F(A)=