设为首页收藏本站

四季歌文学社区

 找回密码
 立即注册(鼓励中文名字)

QQ登录

只需一步,快速开始

查看: 465|回复: 1
打印 上一主题 下一主题

[转帖] 灌水:一道只需加减乘除的题

[复制链接]
  • TA的每日心情

    2022-3-26 21:00
  • 签到天数: 32 天

    [LV.5]常住居民I

    跳转到指定楼层
    楼主
    发表于 2020-10-1 03:55:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    欢迎你来注册,这里有更多的热心朋友期待你的加盟参与。

    您需要 登录 才可以下载或查看,没有帐号?立即注册(鼓励中文名字)

    x
    除了加减乘除外,解答本题无需别的要求:不需知道开平方,不需知道对数或者三角函数之类,反正只需加减乘除就成了。不过此题虽然无需特别的背景,但需要有比较清晰的逻辑思维。这不是啥脑筋急转弯之类的题,而是纯粹的逻辑推理和计算。

    相传此题是大数学家希尔伯特出给同行们消遣的,不知真假,可能系谣传。无论如何,出题人是很厉害的,因为他事先得有很强的直觉,能判断出原来这种题也是可解的。

    题:某天,老师拿了一叠卡片,卡片一共 99 张,上面分别写有从 2 - 100 的各数,每张卡片一个数。老师随机抽取两张卡片,将两个数的和告诉甲同学,将两个数的乘积告诉乙同学。当然甲乙两人不能偷看对方的数,否则这题就是小学低年级学生的游戏了。

    老师的目的是让同学们猜出这两个数是多少。于是有以下对话。

    甲:我不知这两个数是什么,但是我肯定你也不知道。
    乙:我本来是不知道这两个数的,你这么一说的话,那我就知道了。
    甲:那我也知道了。

    问题:这两个数是多少?
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享分享 分享淘帖 支持支持 反对反对
    回复

    使用道具 举报

  • TA的每日心情

    2022-3-26 21:00
  • 签到天数: 32 天

    [LV.5]常住居民I

    沙发
     楼主| 发表于 2021-6-9 20:18:01 | 只看该作者
    解答比较长,看完需要一定的耐心。若是看明白了,还是有意思的。

    先统一记号,假设这两个数为 (a,b),其中
            2 <= a < b <= 100,s = a + b,p = a*b
    这样甲得到的数字是 s (表示和 sum),乙得到的数字是 p (表示乘积 product)。(a,b) 总共有 C(99,2)=99*98/2 = 4851 种组合。

    先来看第一句话。“ 甲:我不知道那两个数字是什么,但是我肯定你也不知道”,这句话意味什么?这意味着 s (甲手中的数字) 不能表达为两个素数的和,否则的话,例如如果 s = 8 = 3 + 5,乙手中的数 p 就可能是 15,而 15 只能分解成 3*5,于是乙能断言这两个数是 (3,5), 因此甲没法断言 “......但是我肯定你也不知道”.

    因为 5 <= s <= 199,所以 s 总共有最多 195 种可能。我们将所有 s 构成的集合 S 分为两个子集 S1、S2,其中 S1 是 S 中所有能表示为两个素数之和的数的集合,S2 为剩余的数的集合。显然,从第一句对话,我们可以推断出,a+b=s 不能在 S1 中,只能在 S2 中。

    鉴于小于 200 的素数大约有 200/ln200 = 38 个素数,而且所有的偶数都能表示为两个素数的和,而且 (2 + 奇素数) 都是奇数,所以作为大体上的估算,S1 中大约有 95 + 37 = 132 个数,S2 中大约有 63 个数,所以从第一句对话中,我们就能去掉大约 2/3 的(a,b) 组合,可能的候选者大约只有 1500 种组合。当然这是一种大体上的估算,和真正的推理计算没啥关系。

    这里四海八荒猜测的组合(16,32)显然不满足第一句话的检测,因为甲的数是 48,因此乙的数就可能是 41*7=287。因此乙能够断言这两个数是 (7,41),因为 287 只有这么一种素数分解。

    再考察第二句话:“我本来是不知道这两个数的,你这么一说的话,那我就知道了”。
    乙手里的数字是(a,b) 的乘积 p = a*b。假设将 p 分解成素数的乘积,p = p1^n1 * p2^n2 *...* pk^nk,其中 p1,...,pk 是素数,n1,...,nk >= 1,例如 90 = 2 * 3^2 * 5,72 = 2^3 * 3^2, 等等。这时 p 所对应的 (a,b) 组合,若不论 a、b < 100 这个约束,就有 n = (n1+1)*(n2+1)*...*(nk+1) / 2 -1 种可能的组合,例如对 90 而言,它可能的组合有 (1+1)(2+1)(1+1)/2 -1 = 5 种可能:90 = 2*45=3*30=5*18=6*15=9*10。
    现在乙能根据甲的第一句话能推断出这两个数是什么,这意味着什么?这意味着总共 n 种 (a, b) 组合中,他能恰好排除 (n-1) 种可能。或者等价地说,p 对应的 n 个 a+b,恰好有 (n-1) 个属于集合 S1 中,有且只有 1 个属于 S2 中。
    我们看个具体的实例,p = 90,它能分解成 5 种可能的 a*b:
    p1):90 = 2*45,2+45=47,属于 S2 (因为们47 不能表示为两个素数的和);
    p2):90 = 3*30,3+30=33 = 2+31,属于 S1;
    p3):90 = 5*18,5+18=23,属于S2;
    p4):90 = 6*15,6+15=21=2+19,属于 S1;
    p5):90 = 9*10,9+10=19=2+17,属于 S1。
    显然,这里 90 不满足这个检测,因为乙的这个数所有可能的分解中,除去那些越界的,必须恰好有且仅有一种分解,其和在集合S2中,这里我们却有两个组合在 S2 中。

    我们再来看看四海八荒随后猜测的组合 (2,9)。这个组合能满足第一句话的检测,因为 2+9=11 不能表达为两个素数的和。咱们具体看看能否满足第二句话的检测。这时乙手中的数是 18. 而 18 有如下两种分解:
    p1):18 = 2×9,2+9=11 属于 S2;
    p2):18 = 3×6,3+6=9  属于 S1.
    因此 (2,9)能通过第二句话的检测,因为它的乘积的所有可能的因式分解中,有且只有一种,其和在 S2 中。

    这里眼尖一点的同学可能留意到了,90 有 5 钟分解,18 只有两种,显然分解的可能性越大,通过第二句话检测的可能性也就越小。

    再看另一可能的组合 (4,13)。因为 4+13=17 不能表达为两个素数的和,因此它能通过第一句话的检测。再考察第二句话。因为 p = 52 = 4*13 = 2*26,4 + 13 属于 S2,2+26 是偶数,属于 S1,所以它能满足第二步的检测。

    我们接下来考虑第三句话。
    第三句话是:“甲:那我也知道了”。注意甲手里的数字是 s = a+b,通常,s 能表达为多种 a + b,例如 8 = 2 + 6 = 3 + 5,两种;11 = 2+9=3+8=4+7=5+6,四种。一般,除去极端情形,s 不超过 100,s 能表示成 [ (s+1)/2] -2 种不同的 (a,b) 之和,这里 [x] 表示 x 的整数部分。若 s 超过 100,那么 s 就只能表示成总共 98 种表示 (考虑越界)。这句话的意思无非是说,甲看到手里的 s 后,对所有可能的总共 min ([ (s+1)/2] -2,[ (197-s)/2])  种可能的 (a、b),乙所对应的总共 min ([ (s+1)/2] -2,[ (197-s)/2]) 种可能的乘积 p,恰好存在一种组合使得乙能判断出 (a,b)。亦即在这么多不同的 p 中间,有且只有一个组合,满足第一步和第二步的检测。

    很明显,随着 s 的增加,min ([ (s+1)/2] -2,[ (197-s)/2]) 也在增加 (然后变小),要满足第三个检测 (亦即存在唯一一个组合使得乙能判断) 也越来越困难。因此如果不依赖程序、只依赖手工去寻找这个组合,那么先应该去从小 s 中寻找才能保证更高的机率。

    具体看 s = 17。从上面的例子我们可以看出,(4、13) 是满足前两步检测的。我们就以 s = 17 来看甲能否说“那我也知道了〃。我们有:
    s = 17 = 2+15=3+14=4+13=5+12=6+11=7+10=8+9 总共 7 种组合。
    情形1):p=30=2*15=3*10=5*6,S1:3+10,S2:2+15,5+6;乙不能判断;
    情形2):p=42=2*21=3*14=6*7,S1:6+7;S2:2+21,3+14;乙不能判断;
    情形3):p=52=2*26=4*13,根据上面的讨论,乙能判断;
    情形4):p=60=2*30=3*20=4*15=5*12=6*10,其中3*20、5*12都属于S2,所以乙不能判断;
    情形5):p=66=2*33=3*22=6*11,其中2*33、6*11都属于S2,所以乙不能判断;
    情形6):p=70=2*35=5*14=7*10,其中2*35、7*10 都属于S2,所以乙不能判断;
    情形7):p=72=2*36=3*24=4*18=6*12=8*9,其中3*24、8*9 都属于S2,所以乙不能判断。

    所以,对 s = 17,对所有可能的 7 种 a+b 组合,存在且唯一存在一种组合4+13,使得乙能判断,以及甲能判断。

    所以,答案之一是 (4,13)。至于这答案是否唯一,靠手工计算,很很烦了。不过即使不唯一,满足条件的答案估计也就那么几个,而且数字不会很大。

    我们再来看看组合(2,9),根据楼上的分析,(2,9)能通过前面两句话的检测。我们来看看它能否通过第三句话的检测。类似的,我们有:
    s=11=2+9=3+8=4+7=5+6, 总共四种可能的组合。逐一考察:
    情形1): p=18=2*9=3*6, 根据上面的讨论,乙能判断;
    情形2): p=24=2*12=3*8=4*6, S1: 2+12, 4+6; S2: 3+8. 乙能判断;
    情形3): 从略
    情形4): 从略
    为啥“从略”呢?因为无论是情形1 还是情形2,乙都能判断,因此甲就吃不准乙的数到底是哪种情形(说不定还可能是情形3&4),因此甲就没法断言“那我也知道了”。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    QQ|Archiver|手机版|小黑屋|四季歌文学社区 ( 京ICP备14012862号-2  

    GMT+8, 2024-4-20 07:22 , Processed in 0.074864 second(s), 23 queries .

    Powered by Discuz! X3.1

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表