鬼谷子问徒

这篇博客介绍了鬼谷子给徒弟孙膑和庞统出的一道数学难题,涉及从2到99中选择两个不同整数的乘积和之谜。庞统和孙膑通过对话逐渐缩小可能的数字范围,最终通过逻辑推理确定了这两个数。文章详细分析了他们的思考过程,包括排除特定数字的方法,以及如何根据对方的陈述更新自己的信息。博客提供了一个模拟计算的过程,展示了如何利用计算机辅助解决此类问题。
摘要由CSDN通过智能技术生成

鬼谷子问徒

孙膑,庞涓都是鬼谷子的徒弟。一天鬼谷子出了这道题目:他从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种分拆方式的情况:

  1. 2+8
    16 = 2 × 8 16=2\times 8 16=2×8. 分解方式唯一

  2. 3+7
    21 = 3 × 7 21=3\times 7 21=3×7. 分解方式唯一

  3. 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的例子,则:

  1. 2+9
    2 × 9 = 3 × 6 2\times 9=3 \times 6 2×9=3×6. 分解方式不唯一。
  2. 3+8
    3 × 8 = 4 × 6 3 \times 8 = 4 \times 6 3×8=4×6. 分解方式不唯一。
  3. 4+7
    4 × 7 = 2 × 14 4 \times 7 = 2 \times 14 4×7=2×14. 分解方式不唯一。
  4. 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={ AF(A)=1}.则只需要从 [ 7 , 195 ] [7,195] [7,195]一一取出 A A A验证 F ( A ) = 1 F(A)=1 F(A)=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值